1# `gimli` Change Log 2 3-------------------------------------------------------------------------------- 4 5## 0.21.0 6 7Released 2020/05/12. 8 9### Breaking changes 10 11* Minimum Rust version increased to 1.38.0. 12 13* Replaced `read::Operation::Literal` with `Operation::UnsignedConstant` and `Operation::SignedConstant`. 14 Changed `read::Operation::Bra` and `read::Operation::Skip` to contain the target offset instead of the bytecode. 15 [#479](https://github.com/gimli-rs/gimli/pull/479) 16 17* Changed `write::Expression` to support references. Existing users can convert to use `Expression::raw`. 18 [#479](https://github.com/gimli-rs/gimli/pull/479) 19 20* Replaced `write::AttributeValue::AnyUnitEntryRef` with `DebugInfoRef`. 21 Renamed `write::AttributeValue::ThisUnitEntryRef` to `UnitRef`. 22 [#479](https://github.com/gimli-rs/gimli/pull/479) 23 24* Added more optional features: `endian-reader` and `fallible-iterator`. 25 [#495](https://github.com/gimli-rs/gimli/pull/495) 26 [#498](https://github.com/gimli-rs/gimli/pull/498) 27 28### Added 29 30* Added `read::Expression::operations` 31 [#479](https://github.com/gimli-rs/gimli/pull/479) 32 33### Fixed 34 35* Fixed newlines in `dwarfdump` example. 36 [#470](https://github.com/gimli-rs/gimli/pull/470) 37 38* Ignore zero terminators when reading `.debug_frame` sections. 39 [#486](https://github.com/gimli-rs/gimli/pull/486) 40 41* Increase the number of CFI register rules supported by `read::UnwindContext`. 42 [#487](https://github.com/gimli-rs/gimli/pull/487) 43 44* Fixed version handling and return register encoding when reading `.eh_frame` sections. 45 [#493](https://github.com/gimli-rs/gimli/pull/493) 46 47### Changed 48 49* Added `EhFrame` and `DebugFrame` to `write::Sections`. 50 [#492](https://github.com/gimli-rs/gimli/pull/492) 51 52* Improved performance of `write::LineProgram::generate_row`. 53 [#476](https://github.com/gimli-rs/gimli/pull/476) 54 55* Removed use of the `byteorder`, `arrayvec` and `smallvec` crates. 56 [#494](https://github.com/gimli-rs/gimli/pull/494) 57 [#496](https://github.com/gimli-rs/gimli/pull/496) 58 [#497](https://github.com/gimli-rs/gimli/pull/497) 59 60-------------------------------------------------------------------------------- 61 62## 0.20.0 63 64Released 2020/01/11. 65 66### Breaking changes 67 68* Changed type of `DwTag`, `DwAt`, and `DwForm` constants. 69 [#451](https://github.com/gimli-rs/gimli/pull/451) 70 71* Added `read/write::AttributeValue::DebugMacroRef`, and returned where 72 required in `read::Attribute::value`. Added `SectionId::DebugMacro`. 73 [#454](https://github.com/gimli-rs/gimli/pull/454) 74 75* Deleted `alloc` feature, and fixed `no-std` builds with stable rust. 76 [#459](https://github.com/gimli-rs/gimli/pull/459) 77 78* Deleted `read::Error::description`, and changed `<read::Error as Display>` 79 to display what was previously the description. 80 [#462](https://github.com/gimli-rs/gimli/pull/462) 81 82### Added 83 84* Added GNU view constants. 85 [#434](https://github.com/gimli-rs/gimli/pull/434) 86 87* Added `read::EntriesRaw` for low level DIE parsing. 88 [#455](https://github.com/gimli-rs/gimli/pull/455) 89 90* Added `examples/simple-line.rs`. 91 [#460](https://github.com/gimli-rs/gimli/pull/460) 92 93### Fixed 94 95* Fixed handling of CFI augmentations without data. 96 [#438](https://github.com/gimli-rs/gimli/pull/438) 97 98* dwarfdump: fix panic for malformed expressions. 99 [#447](https://github.com/gimli-rs/gimli/pull/447) 100 101* dwarfdump: fix handling of Mach-O relocations. 102 [#449](https://github.com/gimli-rs/gimli/pull/449) 103 104### Changed 105 106* Improved abbreviation parsing performance. 107 [#451](https://github.com/gimli-rs/gimli/pull/451) 108 109-------------------------------------------------------------------------------- 110 111## 0.19.0 112 113Released 2019/07/08. 114 115### Breaking changes 116 117* Small API changes related to `.debug_loc` and `.debug_loclists`: 118 added `read::RawLocListEntry::AddressOrOffsetPair` enum variant, 119 added `write::Sections::debug_loc/debug_loclists` public members, 120 and replaced `write::AttributeValue::LocationListsRef` with `LocationListRef`. 121 [#425](https://github.com/gimli-rs/gimli/pull/425) 122 123### Added 124 125* Added `read::Attribute::exprloc_value` and `read::AttributeValue::exprloc_value`. 126 [#422](https://github.com/gimli-rs/gimli/pull/422) 127 128* Added support for writing `.debug_loc` and `.debug_loclists` sections. 129 [#425](https://github.com/gimli-rs/gimli/pull/425) 130 131* Added `-G` flag to `dwarfdump` example to display global offsets. 132 [#427](https://github.com/gimli-rs/gimli/pull/427) 133 134* Added `examples/simple.rs`. 135 [#429](https://github.com/gimli-rs/gimli/pull/429) 136 137### Fixed 138 139* `write::LineProgram::from` no longer requires `DW_AT_name` or `DW_AT_comp_dir` 140 attributes to be present in the unit DIE. 141 [#430](https://github.com/gimli-rs/gimli/pull/430) 142 143-------------------------------------------------------------------------------- 144 145## 0.18.0 146 147Released 2019/04/25. 148 149The focus of this release has been on improving support for reading CFI, 150and adding support for writing CFI. 151 152### Breaking changes 153 154* For types which have an `Offset` type parameter, the default `Offset` 155 has changed from `usize` to `R::Offset`. 156 [#392](https://github.com/gimli-rs/gimli/pull/392) 157 158* Added an `Offset` type parameter to the `read::Unit` type to allow variance. 159 [#393](https://github.com/gimli-rs/gimli/pull/393) 160 161* Changed the `UninitializedUnwindContext::initialize` method to borrow `self`, 162 and return `&mut UnwindContext`. Deleted the `InitializedUnwindContext` type. 163 [#395](https://github.com/gimli-rs/gimli/pull/395) 164 165* Deleted the `UnwindSection` type parameters from the `CommonInformationEntry`, 166 `FrameDescriptionEntry`, `UninitializedUnwindContext`, 167 `UnwindContext`, and `UnwindTable` types. 168 [#399](https://github.com/gimli-rs/gimli/pull/399) 169 170* Changed the signature of the `get_cie` callback parameter for various functions. 171 The signature now matches the `UnwindSection::cie_from_offset` method, so 172 that method can be used as the parameter. 173 [#400](https://github.com/gimli-rs/gimli/pull/400) 174 175* Reduced the number of lifetime parameters for the `UnwindTable` type. 176 [#400](https://github.com/gimli-rs/gimli/pull/400) 177 178* Updated `fallible-iterator` to version 0.2.0. 179 [#407](https://github.com/gimli-rs/gimli/pull/407) 180 181* Added a parameter to the `Error::UnexpectedEof` enum variant. 182 [#408](https://github.com/gimli-rs/gimli/pull/408) 183 184### Added 185 186* Update to 2018 edition. 187 [#391](https://github.com/gimli-rs/gimli/pull/391) 188 189* Added the `FrameDescriptionEntry::unwind_info_for_address` method. 190 [#396](https://github.com/gimli-rs/gimli/pull/396) 191 192* Added the `FrameDescriptionEntry::rows` method. 193 [#396](https://github.com/gimli-rs/gimli/pull/396) 194 195* Added the `EhHdrTable::unwind_info_for_address` method. 196 [#400](https://github.com/gimli-rs/gimli/pull/400) 197 198* Added the `EhHdrTable::fde_for_address` method and deprecated the 199 `EhHdrTable::lookup_and_parse` method. 200 [#400](https://github.com/gimli-rs/gimli/pull/400) 201 202* Added the `EhHdrTable::pointer_to_offset` method. 203 [#400](https://github.com/gimli-rs/gimli/pull/400) 204 205* Added the `UnwindSection::fde_for_address` method. 206 [#396](https://github.com/gimli-rs/gimli/pull/396) 207 208* Added the `UnwindSection::fde_from_offset` method. 209 [#400](https://github.com/gimli-rs/gimli/pull/400) 210 211* Added the `UnwindSection::partial_fde_from_offset` method. 212 [#400](https://github.com/gimli-rs/gimli/pull/400) 213 214* Added the `Section::id` method. 215 [#406](https://github.com/gimli-rs/gimli/pull/406) 216 217* Added the `Dwarf::load` method, and corresponding methods for individual sections. 218 [#406](https://github.com/gimli-rs/gimli/pull/406) 219 220* Added the `Dwarf::borrow` method, and corresponding methods for individual sections. 221 [#406](https://github.com/gimli-rs/gimli/pull/406) 222 223* Added the `Dwarf::format_error` method. 224 [#408](https://github.com/gimli-rs/gimli/pull/408) 225 226* Added the `Dwarf::die_ranges` method. 227 [#417](https://github.com/gimli-rs/gimli/pull/417) 228 229* Added the `Dwarf::unit_ranges` method. 230 [#417](https://github.com/gimli-rs/gimli/pull/417) 231 232* Added support for writing `.debug_frame` and `.eh_frame` sections. 233 [#412](https://github.com/gimli-rs/gimli/pull/412) 234 [#419](https://github.com/gimli-rs/gimli/pull/419) 235 236### Fixed 237 238* The `code_alignment_factor` is now used when evaluting CFI instructions 239 that advance the location. 240 [#401](https://github.com/gimli-rs/gimli/pull/401) 241 242* Fixed parsing of pointers encoded with `DW_EH_PE_funcrel`. 243 [#402](https://github.com/gimli-rs/gimli/pull/402) 244 245* Use the FDE address encoding from the augmentation when parsing `DW_CFA_set_loc`. 246 [#403](https://github.com/gimli-rs/gimli/pull/403) 247 248* Fixed setting of `.eh_frame` base addresses in dwarfdump. 249 [#410](https://github.com/gimli-rs/gimli/pull/410) 250 251## 0.17.0 252 253Released 2019/02/21. 254 255The focus of this release has been on improving DWARF 5 support, and 256adding support for writing DWARF. 257 258### Breaking changes 259 260* Changed register values to a `Register` type instead of `u8`/`u64`. 261 [#328](https://github.com/gimli-rs/gimli/pull/328) 262 263* Replaced `BaseAddresses::set_cfi` with `set_eh_frame_hdr` and `set_eh_frame`. 264 Replaced `BaseAddresses::set_data` with `set_got`. 265 You should now use the same `BaseAddresses` value for parsing both 266 `.eh_frame` and `.eh_frame_hdr`. 267 [#351](https://github.com/gimli-rs/gimli/pull/351) 268 269* Renamed many types and functions related to `.debug_line`. 270 Renamed `LineNumberProgram` to `LineProgram`. 271 Renamed `IncompleteLineNumberProgram` to `IncompleteLineProgram`. 272 Renamed `CompleteLineNumberProgram` to `CompleteLineProgram`. 273 Renamed `LineNumberProgramHeader` to `LineProgramHeader`. 274 Renamed `LineNumberRow` to `LineRow`. 275 Renamed `StateMachine` to `LineRows`. 276 Renamed `Opcode` to `LineInstruction`. 277 Renamed `OpcodesIter` to `LineInstructions`. 278 Renamed `LineNumberSequence` to `LineSequence`. 279 [#359](https://github.com/gimli-rs/gimli/pull/359) 280 281* Added `Offset` type parameter to `AttributeValue`, `LineProgram`, 282 `IncompleteLineProgram`, `CompleteLineProgram`, `LineRows`, `LineInstruction`, 283 and `FileEntry`. 284 [#324](https://github.com/gimli-rs/gimli/pull/324) 285 286* Changed `FileEntry::path_name`, `FileEntry::directory`, and 287 `LineProgramHeader::directory` to return an `AttributeValue` instead 288 of a `Reader`. 289 [#366](https://github.com/gimli-rs/gimli/pull/366) 290 291* Renamed `FileEntry::last_modification` to `FileEntry::timestamp` 292 and renamed `FileEntry::length` to `FileEntry::size`. 293 [#366](https://github.com/gimli-rs/gimli/pull/366) 294 295* Added an `Encoding` type. Changed many functions that previously accepted 296 `Format`, version or address size parameters to accept an `Encoding` 297 parameter instead. 298 Notable changes are `LocationLists::locations`, `RangeLists::ranges`, 299 and `Expression::evaluation`. 300 [#364](https://github.com/gimli-rs/gimli/pull/364) 301 302* Changed return type of `LocationLists::new` and `RangeLists::new`. 303 [#370](https://github.com/gimli-rs/gimli/pull/370) 304 305* Added parameters to `LocationsLists::locations` and `RangeLists::ranges` 306 to support `.debug_addr`. 307 [#358](https://github.com/gimli-rs/gimli/pull/358) 308 309* Added more `AttributeValue` variants: `DebugAddrBase`, `DebugAddrIndex`, 310 `DebugLocListsBase`, `DebugLocListsIndex`, `DebugRngListsBase`, `DebugRngListsIndex`, 311 `DebugStrOffsetsBase`, `DebugStrOffsetsIndex`, `DebugLineStrRef`. 312 [#358](https://github.com/gimli-rs/gimli/pull/358) 313 314* Changed `AttributeValue::Data*` attributes to native endian integers instead 315 of byte arrays. 316 [#365](https://github.com/gimli-rs/gimli/pull/365) 317 318* Replaced `EvaluationResult::TextBase` with 319 `EvaluationResult::RequiresRelocatedAddress`. The handling of `TextBase` 320 was incorrect. 321 [#335](https://github.com/gimli-rs/gimli/pull/335) 322 323* Added `EvaluationResult::IndexedAddress` for operations that require an 324 address from `.debug_addr`. 325 [#358](https://github.com/gimli-rs/gimli/pull/358) 326 327* Added `Reader::read_slice`. Added a default implementation of 328 `Reader::read_u8_array` which uses this. 329 [#358](https://github.com/gimli-rs/gimli/pull/358) 330 331### Added 332 333* Added initial support for writing DWARF. This is targeted at supporting 334 line number information only. 335 [#340](https://github.com/gimli-rs/gimli/pull/340) 336 [#344](https://github.com/gimli-rs/gimli/pull/344) 337 [#346](https://github.com/gimli-rs/gimli/pull/346) 338 [#361](https://github.com/gimli-rs/gimli/pull/361) 339 [#362](https://github.com/gimli-rs/gimli/pull/362) 340 [#365](https://github.com/gimli-rs/gimli/pull/365) 341 [#368](https://github.com/gimli-rs/gimli/pull/368) 342 [#382](https://github.com/gimli-rs/gimli/pull/382) 343 344* Added `read` and `write` Cargo features. Both are enabled by default. 345 [#343](https://github.com/gimli-rs/gimli/pull/343) 346 347* Added support for reading DWARF 5 `.debug_line` and `.debug_line_str` sections. 348 [#366](https://github.com/gimli-rs/gimli/pull/366) 349 350* Added support for reading DWARF 5 `.debug_str_offsets` sections, including 351 parsing `DW_FORM_strx*` attributes. 352 [#358](https://github.com/gimli-rs/gimli/pull/358) 353 354* Added support for reading DWARF 5 `.debug_addr` sections, including parsing 355 `DW_FORM_addrx*` attributes and evaluating `DW_OP_addrx` and `DW_OP_constx` 356 operations. 357 [#358](https://github.com/gimli-rs/gimli/pull/358) 358 359* Added support for reading DWARF 5 indexed addresses and offsets in 360 `.debug_loclists` and `.debug_rnglists`, including parsing `DW_FORM_rnglistx` 361 and `DW_FORM_loclistx` attributes. 362 [#358](https://github.com/gimli-rs/gimli/pull/358) 363 364* Added high level `Dwarf` and `Unit` types. Existing code does not need to 365 switch to using these types, but doing so will make DWARF 5 support simpler. 366 [#352](https://github.com/gimli-rs/gimli/pull/352) 367 [#380](https://github.com/gimli-rs/gimli/pull/380) 368 [#381](https://github.com/gimli-rs/gimli/pull/381) 369 370* Added `EhFrame::set_address_size` and `DebugFrame::set_address_size` methods 371 to allow parsing non-native CFI sections. The default address size is still 372 the native size. 373 [#325](https://github.com/gimli-rs/gimli/pull/325) 374 375* Added architecture specific definitions for `Register` values and names. 376 Changed dwarfdump to print them. 377 [#328](https://github.com/gimli-rs/gimli/pull/328) 378 379* Added support for reading relocatable DWARF sections. 380 [#337](https://github.com/gimli-rs/gimli/pull/337) 381 382* Added parsing of `DW_FORM_data16`. 383 [#366](https://github.com/gimli-rs/gimli/pull/366) 384 385### Fixed 386 387* Fixed parsing DWARF 5 ranges with `start == end == 0`. 388 [#323](https://github.com/gimli-rs/gimli/pull/323) 389 390* Changed `LineRows` to be covariant in its `Reader` type parameter. 391 [#324](https://github.com/gimli-rs/gimli/pull/324) 392 393* Fixed handling of empty units in dwarfdump. 394 [#330](https://github.com/gimli-rs/gimli/pull/330) 395 396* Fixed `UnitHeader::length_including_self` for `Dwarf64`. 397 [#342](https://github.com/gimli-rs/gimli/pull/342) 398 399* Fixed parsing of `DW_CFA_set_loc`. 400 [#355](https://github.com/gimli-rs/gimli/pull/355) 401 402* Fixed handling of multiple headers in `.debug_loclists` and `.debug_rnglists`. 403 [#370](https://github.com/gimli-rs/gimli/pull/370) 404 405-------------------------------------------------------------------------------- 406 407## 0.16.1 408 409Released 2018/08/28. 410 411### Added 412 413* Added `EhFrameHdr::lookup_and_parse`. [#316][] 414* Added support for `DW_CFA_GNU_args_size`. [#319][] 415 416### Fixed 417 418* Implement `Send`/`Sync` for `SubRange`. [#305][] 419* Fixed `alloc` support on nightly. [#306][] [#310][] 420 421[#305]: https://github.com/gimli-rs/gimli/pull/305 422[#306]: https://github.com/gimli-rs/gimli/pull/306 423[#310]: https://github.com/gimli-rs/gimli/pull/310 424[#316]: https://github.com/gimli-rs/gimli/pull/316 425[#319]: https://github.com/gimli-rs/gimli/pull/319 426 427-------------------------------------------------------------------------------- 428 429## 0.16.0 430 431Released 2018/06/01. 432 433### Added 434 435* Added support for building in `#![no_std]` environments, when the `alloc` 436 crate is available. Disable the "std" feature and enable the "alloc" 437 feature. [#138][] [#271][] 438 439* Added support for DWARF 5 `.debug_rnglists` and `.debug_loclists` 440 sections. [#272][] 441 442* Added support for DWARF 5 `DW_FORM_ref_sup` and `DW_FORM_strp_sup` attribute 443 forms. [#288][] 444 445* Added support for DWARF 5 operations on typed values. [#293][] 446 447* A `dwarf-validate` example program that checks the integrity of the given 448 DWARF and its references between sections. [#290][] 449 450* Added the `EndianReader<T>` type, an easy way to define a custom `Reader` 451 implementation with a reference to a generic buffer of bytes and an associated 452 endianity. [#298][] [#302][] 453 454### Changed 455 456* Various speed improvements for evaluating `.debug_line` line number 457 programs. [#276][] 458 459* The example `dwarfdump` clone is a [whole lot faster 460 now][dwarfdump-faster]. [#282][] [#284][] [#285][] 461 462### Deprecated 463 464* `EndianBuf` has been renamed to `EndianSlice`, use that name instead. [#295][] 465 466### Fixed 467 468* Evaluating the `DW_CFA_restore_state` opcode properly maintains the current 469 location. Previously it would incorrectly restore the old location when 470 popping from evaluation stack. [#274][] 471 472[#271]: https://github.com/gimli-rs/gimli/issues/271 473[#138]: https://github.com/gimli-rs/gimli/issues/138 474[#274]: https://github.com/gimli-rs/gimli/issues/274 475[#272]: https://github.com/gimli-rs/gimli/issues/272 476[#276]: https://github.com/gimli-rs/gimli/issues/276 477[#282]: https://github.com/gimli-rs/gimli/issues/282 478[#285]: https://github.com/gimli-rs/gimli/issues/285 479[#284]: https://github.com/gimli-rs/gimli/issues/284 480[#288]: https://github.com/gimli-rs/gimli/issues/288 481[#290]: https://github.com/gimli-rs/gimli/issues/290 482[#293]: https://github.com/gimli-rs/gimli/issues/293 483[#295]: https://github.com/gimli-rs/gimli/issues/295 484[#298]: https://github.com/gimli-rs/gimli/issues/298 485[#302]: https://github.com/gimli-rs/gimli/issues/302 486[dwarfdump-faster]: https://robert.ocallahan.org/2018/03/speeding-up-dwarfdump-with-rust.html 487 488-------------------------------------------------------------------------------- 489 490## 0.15.0 491 492Released 2017/12/01. 493 494### Added 495 496* Added the `EndianBuf::to_string()` method. [#233][] 497 498* Added more robust error handling in our example `dwarfdump` clone. [#234][] 499 500* Added `FrameDescriptionEntry::initial_address` method. [#237][] 501 502* Added `FrameDescriptionEntry::len` method. [#237][] 503 504* Added the `FrameDescriptionEntry::entry_len` method. [#241][] 505 506* Added the `CommonInformationEntry::offset` method. [#241][] 507 508* Added the `CommonInformationEntry::entry_len` method. [#241][] 509 510* Added the `CommonInformationEntry::version` method. [#241][] 511 512* Added the `CommonInformationEntry::augmentation` method. [#241][] 513 514* Added the `CommonInformationEntry::code_alignment_factor` method. [#241][] 515 516* Added the `CommonInformationEntry::data_alignment_factor` method. [#241][] 517 518* Added the `CommonInformationEntry::return_address_register` method. [#241][] 519 520* Added support for printing `.eh_frame` sections to our example `dwarfdump` 521 clone. [#241][] 522 523* Added support for parsing the `.eh_frame_hdr` section. On Linux, the 524 `.eh_frame_hdr` section provides a pointer to the already-mapped-in-memory 525 `.eh_frame` data, so that it doesn't need to be duplicated, and a binary 526 search table of its entries for faster unwinding information lookups. [#250][] 527 528* Added support for parsing DWARF 5 compilation unit headers. [#257][] 529 530* Added support for DWARF 5's `DW_FORM_implicit_const`. [#257][] 531 532### Changed 533 534* Unwinding methods now give ownership of the unwinding context back to the 535 caller if errors are encountered, not just on the success path. This allows 536 recovering from errors in signal-safe code, where constructing a new unwinding 537 context is not an option because it requires allocation. This is a **breaking 538 change** affecting `UnwindSection::unwind_info_for_address` and 539 `UninitializedUnwindContext::initialize`. [#241][] 540 541* `CfaRule` and `RegisterRule` now expose their `DW_OP` expressions as 542 `Expression`. This is a minor **breaking change**. [#241][] 543 544* The `Error::UnknownVersion` variant now contains the unknown version 545 number. This is a minor **breaking change**. [#245][] 546 547* `EvaluationResult::RequiresEntryValue` requires an `Expression` instead of a 548 `Reader` now. This is a minor **breaking change**. [#256][] 549 550 551[#233]: https://github.com/gimli-rs/gimli/pull/233 552[#234]: https://github.com/gimli-rs/gimli/pull/234 553[#237]: https://github.com/gimli-rs/gimli/pull/237 554[#241]: https://github.com/gimli-rs/gimli/pull/241 555[#245]: https://github.com/gimli-rs/gimli/pull/245 556[#250]: https://github.com/gimli-rs/gimli/pull/250 557[#256]: https://github.com/gimli-rs/gimli/pull/256 558[#257]: https://github.com/gimli-rs/gimli/pull/257 559 560-------------------------------------------------------------------------------- 561 562## 0.14.0 563 564Released 2017/08/08. 565 566### Added 567 568* All `pub` types now `derive(Hash)`. [#192][] 569 570* All the constants from DWARF 5 are now defined. [#193][] 571 572* Added support for the `DW_OP_GNU_parameter_ref` GNU extension to parsing and 573 evaluation DWARF opcodes. [#208][] 574 575* Improved LEB128 parsing performance. [#216][] 576 577* Improved `.debug_{aranges,pubnames,pubtypes}` parsing performance. [#218][] 578 579* Added the ability to choose endianity dynamically at run time, rather than 580 only statically at compile time. [#219][] 581 582### Changed 583 584* The biggest change of this release is that `gimli` no longer requires the 585 object file's section be fully loaded into memory. This enables using `gimli` 586 on 32 bit platforms where there often isn't enough contiguous virtual memory 587 address space to load debugging information into. The default behavior is 588 still geared for 64 bit platforms, where address space overfloweth, and you 589 can still load the whole sections of the object file (or the entire object 590 file) into memory. This is abstracted over with the `gimli::Reader` 591 trait. This manifests as small (but many) breaking changes to much of the 592 public API. [#182][] 593 594### Fixed 595 596* The `DW_END_*` constants for defining endianity of a compilation unit were 597 previously incorrect. [#193][] 598 599* The `DW_OP_addr` opcode is relative to the base address of the `.text` section 600 of the binary, but we were incorrectly treating it as an absolute value. [#210][] 601 602[GitHub]: https://github.com/gimli-rs/gimli 603[crates.io]: https://crates.io/crates/gimli 604[contributing]: https://github.com/gimli-rs/gimli/blob/master/CONTRIBUTING.md 605[easy]: https://github.com/gimli-rs/gimli/issues?q=is%3Aopen+is%3Aissue+label%3Aeasy 606[#192]: https://github.com/gimli-rs/gimli/pull/192 607[#193]: https://github.com/gimli-rs/gimli/pull/193 608[#182]: https://github.com/gimli-rs/gimli/issues/182 609[#208]: https://github.com/gimli-rs/gimli/pull/208 610[#210]: https://github.com/gimli-rs/gimli/pull/210 611[#216]: https://github.com/gimli-rs/gimli/pull/216 612[#218]: https://github.com/gimli-rs/gimli/pull/218 613[#219]: https://github.com/gimli-rs/gimli/pull/219 614