| 330 | } |
| 331 | |
| 332 | Dwarf_Die* |
| 333 | AbstractUnwinder::dwarfModuleAddrDie(Dwarf_Addr pc_adjusted, Dwfl_Module* mod, Dwarf_Addr* bias) const |
| 334 | { |
| 335 | Dwarf_Die* cudie = dwfl_module_addrdie(mod, pc_adjusted, bias); |
| 336 | if (!cudie) { |
| 337 | // Clang does produce suboptimal DWARF information, and in particular it |
| 338 | // does not produce the ARANGES attribute in the DIE information, preventing |
| 339 | // the previous call to work. To work around this, we need to scan |
| 340 | // everything ourselves manually to reconstruct the missing information. |
| 341 | cudie = d_range_maps_cache.moduleAddrDie(mod, pc_adjusted, bias); |
| 342 | } |
| 343 | return cudie; |
| 344 | } |
| 345 | |
| 346 | struct ModuleArg |
| 347 | { |
nothing calls this directly
no test coverage detected