]> git.proxmox.com Git - rustc.git/blame - vendor/gimli-0.26.2/CHANGELOG.md
New upstream version 1.69.0+dfsg1
[rustc.git] / vendor / gimli-0.26.2 / CHANGELOG.md
CommitLineData
9ffffee4
FG
1# `gimli` Change Log
2
3--------------------------------------------------------------------------------
4
5## 0.26.2
6
7Released 2022/07/16.
8
9### Changed
10
11* Fixed CFI personality encoding when writing.
12 [#609](https://github.com/gimli-rs/gimli/pull/609)
13
14* Fixed use of raw pointer for mutation, detected by Miri.
15 [#614](https://github.com/gimli-rs/gimli/pull/614)
16
17* Fixed `DW_OP_GNU_implicit_pointer` handling for DWARF version 2.
18 [#618](https://github.com/gimli-rs/gimli/pull/618)
19
20### Added
21
22* Added `read::EhHdrTable::iter`.
23 [#619](https://github.com/gimli-rs/gimli/pull/619)
24
25--------------------------------------------------------------------------------
26
27## 0.26.1
28
29Released 2021/11/02.
30
31### Changed
32
33* Fixed segmentation fault in `ArrayVec<Vec<T>>::into_vec`, which may be used by
34 `read::Evaluation::result`. This regression was introduced in 0.26.0.
35 [#601](https://github.com/gimli-rs/gimli/pull/601)
36
37--------------------------------------------------------------------------------
38
39## 0.26.0
40
41Released 2021/10/24.
42
43### Breaking changes
44
45* Removed `read::UninitializedUnwindContext`. Use `Box<UnwindContext>` instead.
46 [#593](https://github.com/gimli-rs/gimli/pull/593)
47
48* Renamed `read::Error::CfiStackFull` to `StackFull`.
49 [#595](https://github.com/gimli-rs/gimli/pull/595)
50
51* Added `UnwindContextStorage` type parameter to `read::UnwindContext`, `read::UnwindTable`,
52 `read::UnwindTableRow`, and `read::RegisterRuleMap`.
53 [#595](https://github.com/gimli-rs/gimli/pull/595)
54
55* Added `EvaluationStorage` type parameter to `read::Evaluation`.
56 [#595](https://github.com/gimli-rs/gimli/pull/595)
57
58* Added `read::SectionId::DebugCuIndex` and `read::SectionId::DebugTuIndex`.
59 [#588](https://github.com/gimli-rs/gimli/pull/588)
60
61### Changed
62
63* Fixed `DW_EH_PE_pcrel` handling in default `write::Writer::write_eh_pointer` implementation.
64 [#576](https://github.com/gimli-rs/gimli/pull/576)
65
66* Fixed `read::AttributeSpecification::size` for some forms.
67 [#597](https://github.com/gimli-rs/gimli/pull/597)
68
69* Display more unit details in dwarfdump.
70 [#584](https://github.com/gimli-rs/gimli/pull/584)
71
72### Added
73
74* Added `write::DebuggingInformationEntry::delete_child`.
75 [#570](https://github.com/gimli-rs/gimli/pull/570)
76
77* Added ARM and AArch64 register definitions.
78 [#574](https://github.com/gimli-rs/gimli/pull/574)
79 [#577](https://github.com/gimli-rs/gimli/pull/577)
80
81* Added RISC-V register definitions.
82 [#579](https://github.com/gimli-rs/gimli/pull/579)
83
84* Added `read::DwarfPackage`, `read::DebugCuIndex`, and `read::DebugTuIndex`.
85 [#588](https://github.com/gimli-rs/gimli/pull/588)
86
87* Added `read-core` feature to allow building without `liballoc`.
88 [#596](https://github.com/gimli-rs/gimli/pull/596)
89
90* Added `read::EntriesRaw::skip_attributes`.
91 [#597](https://github.com/gimli-rs/gimli/pull/597)
92
93--------------------------------------------------------------------------------
94
95## 0.25.0
96
97Released 2021/07/26.
98
99### Breaking changes
100
101* `read::FrameDescriptionEntry::unwind_info_for_address` now returns a reference
102 instead of cloning.
103 [#557](https://github.com/gimli-rs/gimli/pull/557)
104
105* `read::AttributeValue::RangeListsRef` now contains a `RawRangeListsOffset`
106 to allow handling of GNU split DWARF extensions.
107 Use `read::Dwarf::ranges_offset_from_raw` to handle it.
108 [#568](https://github.com/gimli-rs/gimli/pull/568)
109 [#569](https://github.com/gimli-rs/gimli/pull/569)
110
111* Added `read::Unit::dwo_id`.
112 [#569](https://github.com/gimli-rs/gimli/pull/569)
113
114### Changed
115
116* `.debug_aranges` parsing now accepts version 3.
117 [#560](https://github.com/gimli-rs/gimli/pull/560)
118
119* `read::Dwarf::attr_ranges_offset` and its callers now handle GNU split DWARF extensions.
120 [#568](https://github.com/gimli-rs/gimli/pull/568)
121 [#569](https://github.com/gimli-rs/gimli/pull/569)
122
123### Added
124
125* Added `read::DebugLineStr::new`.
126 [#556](https://github.com/gimli-rs/gimli/pull/556)
127
128* Added `read::UnwindTable::into_current_row`.
129 [#557](https://github.com/gimli-rs/gimli/pull/557)
130
131* Added more `DW_LANG` constants.
132 [#565](https://github.com/gimli-rs/gimli/pull/565)
133
134* dwarfdump: added DWO parent support.
135 [#568](https://github.com/gimli-rs/gimli/pull/568)
136
137* Added `read::Dwarf` methods: `ranges_offset_from_raw`, `raw_ranges`, and `raw_locations`.
138 [#568](https://github.com/gimli-rs/gimli/pull/568)
139 [#569](https://github.com/gimli-rs/gimli/pull/569)
140
141--------------------------------------------------------------------------------
142
143## 0.24.0
144
145Released 2021/05/01.
146
147### Breaking changes
148
149* Minimum Rust version increased to 1.42.0.
150
151* Added `read::Dwarf::debug_aranges`.
152 [#539](https://github.com/gimli-rs/gimli/pull/539)
153
154* Replaced `read::DebugAranges::items` with `read::DebugAranges::headers`.
155 [#539](https://github.com/gimli-rs/gimli/pull/539)
156
157* Added `read::Operation::Wasm*`.
158 [#546](https://github.com/gimli-rs/gimli/pull/546)
159
160* `read::LineRow::line` now returns `Option<NonZeroU64>`.
161 The `read::ColumnType::Column` variant now contains a `NonZeroU64`.
162 [#551](https://github.com/gimli-rs/gimli/pull/551)
163
164* Replaced `read::Dwarf::debug_str_sup` with `read::Dwarf::sup`.
165 Deleted `sup` parameter of `read::Dwarf::load`.
166 Added `read::Dwarf::load_sup`.
167 [#554](https://github.com/gimli-rs/gimli/pull/554)
168
169### Added
170
171* dwarfdump: Supplementary object file support.
172 [#552](https://github.com/gimli-rs/gimli/pull/552)
173
174### Changed
175
176* Support `DW_FORM_addrx*` for `DW_AT_low_pc`/`DW_AT_high_pc` in `read::Dwarf`.
177 [#541](https://github.com/gimli-rs/gimli/pull/541)
178
179* Performance improvement in `EndianReader`.
180 [#549](https://github.com/gimli-rs/gimli/pull/549)
181
182--------------------------------------------------------------------------------
183
184## 0.23.0
185
186Released 2020/10/27.
187
188### Breaking changes
189
190* Added more variants to `read::UnitType`.
191 Added `read::AttributeValue::DwoId`
192 [#521](https://github.com/gimli-rs/gimli/pull/521)
193
194* Replaced `CompilationUnitHeader` and `TypeUnitHeader` with `UnitHeader`.
195 Replaced `CompilationUnitHeadersIter` with `DebugInfoUnitHeadersIter`.
196 Replaced `TypeUnitHeadersIter` with `DebugTypesUnitHeadersIter`.
197 [#523](https://github.com/gimli-rs/gimli/pull/523)
198
199
200### Added
201
202* Added read support for split DWARF.
203 [#527](https://github.com/gimli-rs/gimli/pull/527)
204 [#529](https://github.com/gimli-rs/gimli/pull/529)
205
206* Added `read::Dwarf::attr_address`.
207 [#524](https://github.com/gimli-rs/gimli/pull/524)
208
209* Added read support for `DW_AT_GNU_addr_base` and `DW_AT_GNU_ranges_base`.
210 [#525](https://github.com/gimli-rs/gimli/pull/525)
211
212* dwarfdump: Display index values for attributes.
213 [#526](https://github.com/gimli-rs/gimli/pull/526)
214
215* Added `name_to_register`.
216 [#532](https://github.com/gimli-rs/gimli/pull/532)
217
218--------------------------------------------------------------------------------
219
220## 0.22.0
221
222Released 2020/07/03.
223
224### Breaking changes
225
226* Fixed `UnitHeader::size_of_header` for DWARF 5 units.
227 [#518](https://github.com/gimli-rs/gimli/pull/518)
228
229### Added
230
231* Added fuzz targets in CI.
232 [#512](https://github.com/gimli-rs/gimli/pull/512)
233
234* Added read support for `DW_OP_GNU_addr_index` and `DW_OP_GNU_const_index`.
235 [#516](https://github.com/gimli-rs/gimli/pull/516)
236
237* Added `.dwo` support to dwarfdump.
238 [#516](https://github.com/gimli-rs/gimli/pull/516)
239
240* Added `SectionId::dwo_name` and `Section::dwo_section_name`.
241 [#517](https://github.com/gimli-rs/gimli/pull/517)
242
243### Fixed
244
245* Fixed panic when reading `DW_FORM_indirect` combined with `DW_FORM_implicit_const`.
246 [#502](https://github.com/gimli-rs/gimli/pull/502)
247
248* Fixed panic for `read::Abbreviations::get(0)`.
249 [#505](https://github.com/gimli-rs/gimli/pull/505)
250
251* Fixed arithmetic overflow when reading `.debug_line`.
252 [#508](https://github.com/gimli-rs/gimli/pull/508)
253
254* Fixed arithmetic overflow when reading CFI.
255 [#509](https://github.com/gimli-rs/gimli/pull/509)
256
257* Fixed arithmetic overflow and division by zero when reading `.debug_aranges`.
258 [#510](https://github.com/gimli-rs/gimli/pull/510)
259
260* Don't return error from `read::Unit::new` when `DW_AT_name` or `DW_AT_comp_dir` is missing.
261 [#515](https://github.com/gimli-rs/gimli/pull/515)
262
263--------------------------------------------------------------------------------
264
265## 0.21.0
266
267Released 2020/05/12.
268
269### Breaking changes
270
271* Minimum Rust version increased to 1.38.0.
272
273* Replaced `read::Operation::Literal` with `Operation::UnsignedConstant` and `Operation::SignedConstant`.
274 Changed `read::Operation::Bra` and `read::Operation::Skip` to contain the target offset instead of the bytecode.
275 [#479](https://github.com/gimli-rs/gimli/pull/479)
276
277* Changed `write::Expression` to support references. Existing users can convert to use `Expression::raw`.
278 [#479](https://github.com/gimli-rs/gimli/pull/479)
279
280* Replaced `write::AttributeValue::AnyUnitEntryRef` with `DebugInfoRef`.
281 Renamed `write::AttributeValue::ThisUnitEntryRef` to `UnitRef`.
282 [#479](https://github.com/gimli-rs/gimli/pull/479)
283
284* Added more optional features: `endian-reader` and `fallible-iterator`.
285 [#495](https://github.com/gimli-rs/gimli/pull/495)
286 [#498](https://github.com/gimli-rs/gimli/pull/498)
287
288### Added
289
290* Added `read::Expression::operations`
291 [#479](https://github.com/gimli-rs/gimli/pull/479)
292
293### Fixed
294
295* Fixed newlines in `dwarfdump` example.
296 [#470](https://github.com/gimli-rs/gimli/pull/470)
297
298* Ignore zero terminators when reading `.debug_frame` sections.
299 [#486](https://github.com/gimli-rs/gimli/pull/486)
300
301* Increase the number of CFI register rules supported by `read::UnwindContext`.
302 [#487](https://github.com/gimli-rs/gimli/pull/487)
303
304* Fixed version handling and return register encoding when reading `.eh_frame` sections.
305 [#493](https://github.com/gimli-rs/gimli/pull/493)
306
307### Changed
308
309* Added `EhFrame` and `DebugFrame` to `write::Sections`.
310 [#492](https://github.com/gimli-rs/gimli/pull/492)
311
312* Improved performance of `write::LineProgram::generate_row`.
313 [#476](https://github.com/gimli-rs/gimli/pull/476)
314
315* Removed use of the `byteorder`, `arrayvec` and `smallvec` crates.
316 [#494](https://github.com/gimli-rs/gimli/pull/494)
317 [#496](https://github.com/gimli-rs/gimli/pull/496)
318 [#497](https://github.com/gimli-rs/gimli/pull/497)
319
320--------------------------------------------------------------------------------
321
322## 0.20.0
323
324Released 2020/01/11.
325
326### Breaking changes
327
328* Changed type of `DwTag`, `DwAt`, and `DwForm` constants.
329 [#451](https://github.com/gimli-rs/gimli/pull/451)
330
331* Added `read/write::AttributeValue::DebugMacroRef`, and returned where
332 required in `read::Attribute::value`. Added `SectionId::DebugMacro`.
333 [#454](https://github.com/gimli-rs/gimli/pull/454)
334
335* Deleted `alloc` feature, and fixed `no-std` builds with stable rust.
336 [#459](https://github.com/gimli-rs/gimli/pull/459)
337
338* Deleted `read::Error::description`, and changed `<read::Error as Display>`
339 to display what was previously the description.
340 [#462](https://github.com/gimli-rs/gimli/pull/462)
341
342### Added
343
344* Added GNU view constants.
345 [#434](https://github.com/gimli-rs/gimli/pull/434)
346
347* Added `read::EntriesRaw` for low level DIE parsing.
348 [#455](https://github.com/gimli-rs/gimli/pull/455)
349
350* Added `examples/simple-line.rs`.
351 [#460](https://github.com/gimli-rs/gimli/pull/460)
352
353### Fixed
354
355* Fixed handling of CFI augmentations without data.
356 [#438](https://github.com/gimli-rs/gimli/pull/438)
357
358* dwarfdump: fix panic for malformed expressions.
359 [#447](https://github.com/gimli-rs/gimli/pull/447)
360
361* dwarfdump: fix handling of Mach-O relocations.
362 [#449](https://github.com/gimli-rs/gimli/pull/449)
363
364### Changed
365
366* Improved abbreviation parsing performance.
367 [#451](https://github.com/gimli-rs/gimli/pull/451)
368
369--------------------------------------------------------------------------------
370
371## 0.19.0
372
373Released 2019/07/08.
374
375### Breaking changes
376
377* Small API changes related to `.debug_loc` and `.debug_loclists`:
378 added `read::RawLocListEntry::AddressOrOffsetPair` enum variant,
379 added `write::Sections::debug_loc/debug_loclists` public members,
380 and replaced `write::AttributeValue::LocationListsRef` with `LocationListRef`.
381 [#425](https://github.com/gimli-rs/gimli/pull/425)
382
383### Added
384
385* Added `read::Attribute::exprloc_value` and `read::AttributeValue::exprloc_value`.
386 [#422](https://github.com/gimli-rs/gimli/pull/422)
387
388* Added support for writing `.debug_loc` and `.debug_loclists` sections.
389 [#425](https://github.com/gimli-rs/gimli/pull/425)
390
391* Added `-G` flag to `dwarfdump` example to display global offsets.
392 [#427](https://github.com/gimli-rs/gimli/pull/427)
393
394* Added `examples/simple.rs`.
395 [#429](https://github.com/gimli-rs/gimli/pull/429)
396
397### Fixed
398
399* `write::LineProgram::from` no longer requires `DW_AT_name` or `DW_AT_comp_dir`
400 attributes to be present in the unit DIE.
401 [#430](https://github.com/gimli-rs/gimli/pull/430)
402
403--------------------------------------------------------------------------------
404
405## 0.18.0
406
407Released 2019/04/25.
408
409The focus of this release has been on improving support for reading CFI,
410and adding support for writing CFI.
411
412### Breaking changes
413
414* For types which have an `Offset` type parameter, the default `Offset`
415 has changed from `usize` to `R::Offset`.
416 [#392](https://github.com/gimli-rs/gimli/pull/392)
417
418* Added an `Offset` type parameter to the `read::Unit` type to allow variance.
419 [#393](https://github.com/gimli-rs/gimli/pull/393)
420
421* Changed the `UninitializedUnwindContext::initialize` method to borrow `self`,
422 and return `&mut UnwindContext`. Deleted the `InitializedUnwindContext` type.
423 [#395](https://github.com/gimli-rs/gimli/pull/395)
424
425* Deleted the `UnwindSection` type parameters from the `CommonInformationEntry`,
426 `FrameDescriptionEntry`, `UninitializedUnwindContext`,
427 `UnwindContext`, and `UnwindTable` types.
428 [#399](https://github.com/gimli-rs/gimli/pull/399)
429
430* Changed the signature of the `get_cie` callback parameter for various functions.
431 The signature now matches the `UnwindSection::cie_from_offset` method, so
432 that method can be used as the parameter.
433 [#400](https://github.com/gimli-rs/gimli/pull/400)
434
435* Reduced the number of lifetime parameters for the `UnwindTable` type.
436 [#400](https://github.com/gimli-rs/gimli/pull/400)
437
438* Updated `fallible-iterator` to version 0.2.0.
439 [#407](https://github.com/gimli-rs/gimli/pull/407)
440
441* Added a parameter to the `Error::UnexpectedEof` enum variant.
442 [#408](https://github.com/gimli-rs/gimli/pull/408)
443
444### Added
445
446* Update to 2018 edition.
447 [#391](https://github.com/gimli-rs/gimli/pull/391)
448
449* Added the `FrameDescriptionEntry::unwind_info_for_address` method.
450 [#396](https://github.com/gimli-rs/gimli/pull/396)
451
452* Added the `FrameDescriptionEntry::rows` method.
453 [#396](https://github.com/gimli-rs/gimli/pull/396)
454
455* Added the `EhHdrTable::unwind_info_for_address` method.
456 [#400](https://github.com/gimli-rs/gimli/pull/400)
457
458* Added the `EhHdrTable::fde_for_address` method and deprecated the
459 `EhHdrTable::lookup_and_parse` method.
460 [#400](https://github.com/gimli-rs/gimli/pull/400)
461
462* Added the `EhHdrTable::pointer_to_offset` method.
463 [#400](https://github.com/gimli-rs/gimli/pull/400)
464
465* Added the `UnwindSection::fde_for_address` method.
466 [#396](https://github.com/gimli-rs/gimli/pull/396)
467
468* Added the `UnwindSection::fde_from_offset` method.
469 [#400](https://github.com/gimli-rs/gimli/pull/400)
470
471* Added the `UnwindSection::partial_fde_from_offset` method.
472 [#400](https://github.com/gimli-rs/gimli/pull/400)
473
474* Added the `Section::id` method.
475 [#406](https://github.com/gimli-rs/gimli/pull/406)
476
477* Added the `Dwarf::load` method, and corresponding methods for individual sections.
478 [#406](https://github.com/gimli-rs/gimli/pull/406)
479
480* Added the `Dwarf::borrow` method, and corresponding methods for individual sections.
481 [#406](https://github.com/gimli-rs/gimli/pull/406)
482
483* Added the `Dwarf::format_error` method.
484 [#408](https://github.com/gimli-rs/gimli/pull/408)
485
486* Added the `Dwarf::die_ranges` method.
487 [#417](https://github.com/gimli-rs/gimli/pull/417)
488
489* Added the `Dwarf::unit_ranges` method.
490 [#417](https://github.com/gimli-rs/gimli/pull/417)
491
492* Added support for writing `.debug_frame` and `.eh_frame` sections.
493 [#412](https://github.com/gimli-rs/gimli/pull/412)
494 [#419](https://github.com/gimli-rs/gimli/pull/419)
495
496### Fixed
497
498* The `code_alignment_factor` is now used when evaluting CFI instructions
499 that advance the location.
500 [#401](https://github.com/gimli-rs/gimli/pull/401)
501
502* Fixed parsing of pointers encoded with `DW_EH_PE_funcrel`.
503 [#402](https://github.com/gimli-rs/gimli/pull/402)
504
505* Use the FDE address encoding from the augmentation when parsing `DW_CFA_set_loc`.
506 [#403](https://github.com/gimli-rs/gimli/pull/403)
507
508* Fixed setting of `.eh_frame` base addresses in dwarfdump.
509 [#410](https://github.com/gimli-rs/gimli/pull/410)
510
511## 0.17.0
512
513Released 2019/02/21.
514
515The focus of this release has been on improving DWARF 5 support, and
516adding support for writing DWARF.
517
518### Breaking changes
519
520* Changed register values to a `Register` type instead of `u8`/`u64`.
521 [#328](https://github.com/gimli-rs/gimli/pull/328)
522
523* Replaced `BaseAddresses::set_cfi` with `set_eh_frame_hdr` and `set_eh_frame`.
524 Replaced `BaseAddresses::set_data` with `set_got`.
525 You should now use the same `BaseAddresses` value for parsing both
526 `.eh_frame` and `.eh_frame_hdr`.
527 [#351](https://github.com/gimli-rs/gimli/pull/351)
528
529* Renamed many types and functions related to `.debug_line`.
530 Renamed `LineNumberProgram` to `LineProgram`.
531 Renamed `IncompleteLineNumberProgram` to `IncompleteLineProgram`.
532 Renamed `CompleteLineNumberProgram` to `CompleteLineProgram`.
533 Renamed `LineNumberProgramHeader` to `LineProgramHeader`.
534 Renamed `LineNumberRow` to `LineRow`.
535 Renamed `StateMachine` to `LineRows`.
536 Renamed `Opcode` to `LineInstruction`.
537 Renamed `OpcodesIter` to `LineInstructions`.
538 Renamed `LineNumberSequence` to `LineSequence`.
539 [#359](https://github.com/gimli-rs/gimli/pull/359)
540
541* Added `Offset` type parameter to `AttributeValue`, `LineProgram`,
542 `IncompleteLineProgram`, `CompleteLineProgram`, `LineRows`, `LineInstruction`,
543 and `FileEntry`.
544 [#324](https://github.com/gimli-rs/gimli/pull/324)
545
546* Changed `FileEntry::path_name`, `FileEntry::directory`, and
547 `LineProgramHeader::directory` to return an `AttributeValue` instead
548 of a `Reader`.
549 [#366](https://github.com/gimli-rs/gimli/pull/366)
550
551* Renamed `FileEntry::last_modification` to `FileEntry::timestamp`
552 and renamed `FileEntry::length` to `FileEntry::size`.
553 [#366](https://github.com/gimli-rs/gimli/pull/366)
554
555* Added an `Encoding` type. Changed many functions that previously accepted
556 `Format`, version or address size parameters to accept an `Encoding`
557 parameter instead.
558 Notable changes are `LocationLists::locations`, `RangeLists::ranges`,
559 and `Expression::evaluation`.
560 [#364](https://github.com/gimli-rs/gimli/pull/364)
561
562* Changed return type of `LocationLists::new` and `RangeLists::new`.
563 [#370](https://github.com/gimli-rs/gimli/pull/370)
564
565* Added parameters to `LocationsLists::locations` and `RangeLists::ranges`
566 to support `.debug_addr`.
567 [#358](https://github.com/gimli-rs/gimli/pull/358)
568
569* Added more `AttributeValue` variants: `DebugAddrBase`, `DebugAddrIndex`,
570 `DebugLocListsBase`, `DebugLocListsIndex`, `DebugRngListsBase`, `DebugRngListsIndex`,
571 `DebugStrOffsetsBase`, `DebugStrOffsetsIndex`, `DebugLineStrRef`.
572 [#358](https://github.com/gimli-rs/gimli/pull/358)
573
574* Changed `AttributeValue::Data*` attributes to native endian integers instead
575 of byte arrays.
576 [#365](https://github.com/gimli-rs/gimli/pull/365)
577
578* Replaced `EvaluationResult::TextBase` with
579 `EvaluationResult::RequiresRelocatedAddress`. The handling of `TextBase`
580 was incorrect.
581 [#335](https://github.com/gimli-rs/gimli/pull/335)
582
583* Added `EvaluationResult::IndexedAddress` for operations that require an
584 address from `.debug_addr`.
585 [#358](https://github.com/gimli-rs/gimli/pull/358)
586
587* Added `Reader::read_slice`. Added a default implementation of
588 `Reader::read_u8_array` which uses this.
589 [#358](https://github.com/gimli-rs/gimli/pull/358)
590
591### Added
592
593* Added initial support for writing DWARF. This is targeted at supporting
594 line number information only.
595 [#340](https://github.com/gimli-rs/gimli/pull/340)
596 [#344](https://github.com/gimli-rs/gimli/pull/344)
597 [#346](https://github.com/gimli-rs/gimli/pull/346)
598 [#361](https://github.com/gimli-rs/gimli/pull/361)
599 [#362](https://github.com/gimli-rs/gimli/pull/362)
600 [#365](https://github.com/gimli-rs/gimli/pull/365)
601 [#368](https://github.com/gimli-rs/gimli/pull/368)
602 [#382](https://github.com/gimli-rs/gimli/pull/382)
603
604* Added `read` and `write` Cargo features. Both are enabled by default.
605 [#343](https://github.com/gimli-rs/gimli/pull/343)
606
607* Added support for reading DWARF 5 `.debug_line` and `.debug_line_str` sections.
608 [#366](https://github.com/gimli-rs/gimli/pull/366)
609
610* Added support for reading DWARF 5 `.debug_str_offsets` sections, including
611 parsing `DW_FORM_strx*` attributes.
612 [#358](https://github.com/gimli-rs/gimli/pull/358)
613
614* Added support for reading DWARF 5 `.debug_addr` sections, including parsing
615 `DW_FORM_addrx*` attributes and evaluating `DW_OP_addrx` and `DW_OP_constx`
616 operations.
617 [#358](https://github.com/gimli-rs/gimli/pull/358)
618
619* Added support for reading DWARF 5 indexed addresses and offsets in
620 `.debug_loclists` and `.debug_rnglists`, including parsing `DW_FORM_rnglistx`
621 and `DW_FORM_loclistx` attributes.
622 [#358](https://github.com/gimli-rs/gimli/pull/358)
623
624* Added high level `Dwarf` and `Unit` types. Existing code does not need to
625 switch to using these types, but doing so will make DWARF 5 support simpler.
626 [#352](https://github.com/gimli-rs/gimli/pull/352)
627 [#380](https://github.com/gimli-rs/gimli/pull/380)
628 [#381](https://github.com/gimli-rs/gimli/pull/381)
629
630* Added `EhFrame::set_address_size` and `DebugFrame::set_address_size` methods
631 to allow parsing non-native CFI sections. The default address size is still
632 the native size.
633 [#325](https://github.com/gimli-rs/gimli/pull/325)
634
635* Added architecture specific definitions for `Register` values and names.
636 Changed dwarfdump to print them.
637 [#328](https://github.com/gimli-rs/gimli/pull/328)
638
639* Added support for reading relocatable DWARF sections.
640 [#337](https://github.com/gimli-rs/gimli/pull/337)
641
642* Added parsing of `DW_FORM_data16`.
643 [#366](https://github.com/gimli-rs/gimli/pull/366)
644
645### Fixed
646
647* Fixed parsing DWARF 5 ranges with `start == end == 0`.
648 [#323](https://github.com/gimli-rs/gimli/pull/323)
649
650* Changed `LineRows` to be covariant in its `Reader` type parameter.
651 [#324](https://github.com/gimli-rs/gimli/pull/324)
652
653* Fixed handling of empty units in dwarfdump.
654 [#330](https://github.com/gimli-rs/gimli/pull/330)
655
656* Fixed `UnitHeader::length_including_self` for `Dwarf64`.
657 [#342](https://github.com/gimli-rs/gimli/pull/342)
658
659* Fixed parsing of `DW_CFA_set_loc`.
660 [#355](https://github.com/gimli-rs/gimli/pull/355)
661
662* Fixed handling of multiple headers in `.debug_loclists` and `.debug_rnglists`.
663 [#370](https://github.com/gimli-rs/gimli/pull/370)
664
665--------------------------------------------------------------------------------
666
667## 0.16.1
668
669Released 2018/08/28.
670
671### Added
672
673* Added `EhFrameHdr::lookup_and_parse`. [#316][]
674* Added support for `DW_CFA_GNU_args_size`. [#319][]
675
676### Fixed
677
678* Implement `Send`/`Sync` for `SubRange`. [#305][]
679* Fixed `alloc` support on nightly. [#306][] [#310][]
680
681[#305]: https://github.com/gimli-rs/gimli/pull/305
682[#306]: https://github.com/gimli-rs/gimli/pull/306
683[#310]: https://github.com/gimli-rs/gimli/pull/310
684[#316]: https://github.com/gimli-rs/gimli/pull/316
685[#319]: https://github.com/gimli-rs/gimli/pull/319
686
687--------------------------------------------------------------------------------
688
689## 0.16.0
690
691Released 2018/06/01.
692
693### Added
694
695* Added support for building in `#![no_std]` environments, when the `alloc`
696 crate is available. Disable the "std" feature and enable the "alloc"
697 feature. [#138][] [#271][]
698
699* Added support for DWARF 5 `.debug_rnglists` and `.debug_loclists`
700 sections. [#272][]
701
702* Added support for DWARF 5 `DW_FORM_ref_sup` and `DW_FORM_strp_sup` attribute
703 forms. [#288][]
704
705* Added support for DWARF 5 operations on typed values. [#293][]
706
707* A `dwarf-validate` example program that checks the integrity of the given
708 DWARF and its references between sections. [#290][]
709
710* Added the `EndianReader<T>` type, an easy way to define a custom `Reader`
711 implementation with a reference to a generic buffer of bytes and an associated
712 endianity. [#298][] [#302][]
713
714### Changed
715
716* Various speed improvements for evaluating `.debug_line` line number
717 programs. [#276][]
718
719* The example `dwarfdump` clone is a [whole lot faster
720 now][dwarfdump-faster]. [#282][] [#284][] [#285][]
721
722### Deprecated
723
724* `EndianBuf` has been renamed to `EndianSlice`, use that name instead. [#295][]
725
726### Fixed
727
728* Evaluating the `DW_CFA_restore_state` opcode properly maintains the current
729 location. Previously it would incorrectly restore the old location when
730 popping from evaluation stack. [#274][]
731
732[#271]: https://github.com/gimli-rs/gimli/issues/271
733[#138]: https://github.com/gimli-rs/gimli/issues/138
734[#274]: https://github.com/gimli-rs/gimli/issues/274
735[#272]: https://github.com/gimli-rs/gimli/issues/272
736[#276]: https://github.com/gimli-rs/gimli/issues/276
737[#282]: https://github.com/gimli-rs/gimli/issues/282
738[#285]: https://github.com/gimli-rs/gimli/issues/285
739[#284]: https://github.com/gimli-rs/gimli/issues/284
740[#288]: https://github.com/gimli-rs/gimli/issues/288
741[#290]: https://github.com/gimli-rs/gimli/issues/290
742[#293]: https://github.com/gimli-rs/gimli/issues/293
743[#295]: https://github.com/gimli-rs/gimli/issues/295
744[#298]: https://github.com/gimli-rs/gimli/issues/298
745[#302]: https://github.com/gimli-rs/gimli/issues/302
746[dwarfdump-faster]: https://robert.ocallahan.org/2018/03/speeding-up-dwarfdump-with-rust.html
747
748--------------------------------------------------------------------------------
749
750## 0.15.0
751
752Released 2017/12/01.
753
754### Added
755
756* Added the `EndianBuf::to_string()` method. [#233][]
757
758* Added more robust error handling in our example `dwarfdump` clone. [#234][]
759
760* Added `FrameDescriptionEntry::initial_address` method. [#237][]
761
762* Added `FrameDescriptionEntry::len` method. [#237][]
763
764* Added the `FrameDescriptionEntry::entry_len` method. [#241][]
765
766* Added the `CommonInformationEntry::offset` method. [#241][]
767
768* Added the `CommonInformationEntry::entry_len` method. [#241][]
769
770* Added the `CommonInformationEntry::version` method. [#241][]
771
772* Added the `CommonInformationEntry::augmentation` method. [#241][]
773
774* Added the `CommonInformationEntry::code_alignment_factor` method. [#241][]
775
776* Added the `CommonInformationEntry::data_alignment_factor` method. [#241][]
777
778* Added the `CommonInformationEntry::return_address_register` method. [#241][]
779
780* Added support for printing `.eh_frame` sections to our example `dwarfdump`
781 clone. [#241][]
782
783* Added support for parsing the `.eh_frame_hdr` section. On Linux, the
784 `.eh_frame_hdr` section provides a pointer to the already-mapped-in-memory
785 `.eh_frame` data, so that it doesn't need to be duplicated, and a binary
786 search table of its entries for faster unwinding information lookups. [#250][]
787
788* Added support for parsing DWARF 5 compilation unit headers. [#257][]
789
790* Added support for DWARF 5's `DW_FORM_implicit_const`. [#257][]
791
792### Changed
793
794* Unwinding methods now give ownership of the unwinding context back to the
795 caller if errors are encountered, not just on the success path. This allows
796 recovering from errors in signal-safe code, where constructing a new unwinding
797 context is not an option because it requires allocation. This is a **breaking
798 change** affecting `UnwindSection::unwind_info_for_address` and
799 `UninitializedUnwindContext::initialize`. [#241][]
800
801* `CfaRule` and `RegisterRule` now expose their `DW_OP` expressions as
802 `Expression`. This is a minor **breaking change**. [#241][]
803
804* The `Error::UnknownVersion` variant now contains the unknown version
805 number. This is a minor **breaking change**. [#245][]
806
807* `EvaluationResult::RequiresEntryValue` requires an `Expression` instead of a
808 `Reader` now. This is a minor **breaking change**. [#256][]
809
810
811[#233]: https://github.com/gimli-rs/gimli/pull/233
812[#234]: https://github.com/gimli-rs/gimli/pull/234
813[#237]: https://github.com/gimli-rs/gimli/pull/237
814[#241]: https://github.com/gimli-rs/gimli/pull/241
815[#245]: https://github.com/gimli-rs/gimli/pull/245
816[#250]: https://github.com/gimli-rs/gimli/pull/250
817[#256]: https://github.com/gimli-rs/gimli/pull/256
818[#257]: https://github.com/gimli-rs/gimli/pull/257
819
820--------------------------------------------------------------------------------
821
822## 0.14.0
823
824Released 2017/08/08.
825
826### Added
827
828* All `pub` types now `derive(Hash)`. [#192][]
829
830* All the constants from DWARF 5 are now defined. [#193][]
831
832* Added support for the `DW_OP_GNU_parameter_ref` GNU extension to parsing and
833 evaluation DWARF opcodes. [#208][]
834
835* Improved LEB128 parsing performance. [#216][]
836
837* Improved `.debug_{aranges,pubnames,pubtypes}` parsing performance. [#218][]
838
839* Added the ability to choose endianity dynamically at run time, rather than
840 only statically at compile time. [#219][]
841
842### Changed
843
844* The biggest change of this release is that `gimli` no longer requires the
845 object file's section be fully loaded into memory. This enables using `gimli`
846 on 32 bit platforms where there often isn't enough contiguous virtual memory
847 address space to load debugging information into. The default behavior is
848 still geared for 64 bit platforms, where address space overfloweth, and you
849 can still load the whole sections of the object file (or the entire object
850 file) into memory. This is abstracted over with the `gimli::Reader`
851 trait. This manifests as small (but many) breaking changes to much of the
852 public API. [#182][]
853
854### Fixed
855
856* The `DW_END_*` constants for defining endianity of a compilation unit were
857 previously incorrect. [#193][]
858
859* The `DW_OP_addr` opcode is relative to the base address of the `.text` section
860 of the binary, but we were incorrectly treating it as an absolute value. [#210][]
861
862[GitHub]: https://github.com/gimli-rs/gimli
863[crates.io]: https://crates.io/crates/gimli
864[contributing]: https://github.com/gimli-rs/gimli/blob/master/CONTRIBUTING.md
865[easy]: https://github.com/gimli-rs/gimli/issues?q=is%3Aopen+is%3Aissue+label%3Aeasy
866[#192]: https://github.com/gimli-rs/gimli/pull/192
867[#193]: https://github.com/gimli-rs/gimli/pull/193
868[#182]: https://github.com/gimli-rs/gimli/issues/182
869[#208]: https://github.com/gimli-rs/gimli/pull/208
870[#210]: https://github.com/gimli-rs/gimli/pull/210
871[#216]: https://github.com/gimli-rs/gimli/pull/216
872[#218]: https://github.com/gimli-rs/gimli/pull/218
873[#219]: https://github.com/gimli-rs/gimli/pull/219