You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The failure handler prints out a stack trace with relocated PCs, which means they can't later be used with addr2line, because the investigator having nothing but the logs of a dead process can't know the base address where the DSO was loaded. I have locally worked around this by using the SymbolDecorator API to add the relocation base address to the symbols as they are resolved. However, this isn't a great solution because that API is internal and has zero users (even within Abseil) so I suspect it is either vestigial or only used inside Google, and could be subject to change or removal.
Because that solution is fragile, I wanted to contribute a change to the failure signal handler that will be permanent. What would be the best way to present the right address? For reference, the output currently looks like this:
*** SIGSEGV received at time=1720195466 on cpu 20 ***
PC: @ 0x560610619eee (unknown) main
@ 0x56061140c7dc 64 absl::lts_20240116::WriteFailureInfo()
@ 0x56061140c47f 272 absl::lts_20240116::AbslFailureSignalHandler()
@ 0x7f01d81b5520 (unknown)
@ 0x7f01d819cd90 (unknown)
These two DSOs are loaded at 0x56060e44b000 and 0x7f01d8173000.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
The failure handler prints out a stack trace with relocated PCs, which means they can't later be used with addr2line, because the investigator having nothing but the logs of a dead process can't know the base address where the DSO was loaded. I have locally worked around this by using the SymbolDecorator API to add the relocation base address to the symbols as they are resolved. However, this isn't a great solution because that API is internal and has zero users (even within Abseil) so I suspect it is either vestigial or only used inside Google, and could be subject to change or removal.
Because that solution is fragile, I wanted to contribute a change to the failure signal handler that will be permanent. What would be the best way to present the right address? For reference, the output currently looks like this:
These two DSOs are loaded at 0x56060e44b000 and 0x7f01d8173000.
Beta Was this translation helpful? Give feedback.
All reactions