Closed PwnVerse closed 11 months ago
Thanks for reporting this. We'll look into it.
Unfortunately the person familiar with that part of the code (me :)
) is going to be off until Sep 28th.
I'll give it a try when I come back.
Debug info were providing an invalid address for some reason (0
). Quickfix incoming but we'll need to investigate 1) why in DWARF we have 0
, 2) ensure we never put in the model functions (or anything else with an address) whose entry point is out of any segment.
Example offending debug info:
0x000020a5: DW_TAG_subprogram
DW_AT_external (true)
DW_AT_name ("dcd_edpt_close")
DW_AT_decl_file ("/home/ritvik/Desktop/Files/tinyusb/src/portable/nordic/nrf5x/dcd_nrf5x.c")
DW_AT_decl_line (419)
DW_AT_decl_column (0x06)
DW_AT_prototyped (true)
DW_AT_low_pc (0x00000000)
DW_AT_high_pc (0x00000138)
DW_AT_frame_base (DW_OP_call_frame_cfa)
DW_AT_GNU_all_call_sites (true)
DW_AT_sibling (0x0000215b)
Fixed in 79c5f59. The binary you attached can now be lifted correctly.
What remains to be done is to ensure all model::Function
s lie within a model::Segment
and prevent the DWARF importer from creating functions out of any segment (right now we just ban functions at NULL
address).
Thanks for reporting this and feel free to open a new issue if encounter other problems.
Attaching the ARM ELF used for testing here