Support using dladdr1 for safe trace resolution #188
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Currently, signal-safe tracing is limited to systems where the GLIC version is
>=2.35
. This is quite restrictive to older systems, and it results in traces silently not resolving even though that is possible (and already inget_frame_object_info
) by usingdladdr1
.Thus, I'm proposing using that function in older systems, as I managed to get safe traces working after this change. The issue with this, of course, is that these are no longer "safe", as the underlying calls involve memory allocations. These might be avoided, but that involves changes to functions like
[elf_]get_module_image_base
to make them safe.In summary, this is not ready to merge in if we consider the
safe
inget_safe_object_frame
, but it can get the discussion started. A simple solution to this might be to allow enabling this behind a flag.