Christian Schafmeister via llvm-dev
2018-Nov-13 14:50 UTC
[llvm-dev] How do I get access to the llvm_stackmaps segment of an ELF .so file mmap'd in linux?
I've gotten llvm.experimental.stackmaps working on macOS to locate a structure that I spill register arguments into so that I can recover them for backtraces. I generate a stackmap entry for every function that I compile and then compile my code to object files and link them into a .so dynamic library. I load this library into the Clasp executable and the functions become available. I'm trying to make the stackmap information available as well - I can see that it is in the ELF file using 'readelf'. I can also find it mmap'd into memory using a combination of readelf, peeking at the /proc/<pid>/maps file, gdb and arithmetic. On linux,however, I can't figure out how to get access to the llvm_stackmap section of an ELF .so file that is mmap'd into memory. I can use dl_iterate_phdr to iterate over the ELF segments - but there doesn't appear to be any way to access the .llvm_stackmap section, which IS loaded and relocated in memory (I can dump it with gdb and it's all ready to go if I could figure out its start and end). I could read the ELF file on disk and figure out where the llvm_stackmap section is in the "section header table" - but that seems really inelegant to go back to disk to figure out where something is in memory. -- Christian Schafmeister Professor, Chemistry Department Temple University -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20181113/5f4e3285/attachment.html>