rainers / cv2pdb

converter of DMD CodeView/DWARF debug information to PDB files
Artistic License 2.0
466 stars 110 forks source link

Support non-contiguous functions #71

Closed Marc-Aldorasi-Imprivata closed 2 years ago

Marc-Aldorasi-Imprivata commented 2 years ago

This changes CV2PDB::addDWARFProc to take a sequence of address ranges. The first address range (which starts at the function entry point) still emits a S_GPROC_V3 block, but the additional ranges emit S_SEPCODE_V3 blocks which reference the S_GPROC_V3 block, so when the debugger displays an address in one of these ranges it will display as correct_function_name+large_offset_from_entry_address instead of unrelated_symbol+small_offset.

This fixes issue #52.

rainers commented 2 years ago

Thanks and sorry for the delay, somehow fell off the radar.