Hi everyone, I'm working on a project where I need to add the addresses's of specific instructions to the DWARF output. I've been digging around for the last week or so trying to figure out exactly what I need to do, but this is my first list posting. I came across this posting: http://lists.cs.uiuc.edu/pipermail/llvmdev/2010-September/034464.html which seems to be doing almost exactly what I want to do, however it was created with LLVM 2.7 in mind. Since then, from what I can tell, the LLVM MC project has been created and blown away the usefulness of the descriptions contained in that thread. (Example: AsmPrinter::processDebugLoc() no longer exists). Does anyone have any pointers on how to update this for LLVM/clang 3.0? To be more specific, I've added a special stack guard intrinsic similar to StackProtector.cpp which uses a per function random immediate instead of ___stack_chk_guard. What I am trying to accomplish is to get the offset into the final x86 object file of each one of these immediate values. An example of the output in Assembly looks like: movq $653406579, -8(%rbp) ## imm = 0x26F23173 In reality, I'd settle for a simple way to get the offset into the Obj file of the movq instruction that I could putput to a separate file, but It'd be better if I could get it into the DWARF tags. Does anyone have any familiarity with this to give me some pointers? Thanks, AK -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20120325/10935a02/attachment.html>
On Mar 25, 2012, at 3:11 PM, Aaron Kobayashi <aaron.kobayashi at gmail.com> wrote:> Hi everyone, > > I'm working on a project where I need to add the addresses's of specific instructions to the DWARF output. > > I've been digging around for the last week or so trying to figure out exactly what I need to do, but this is my first list posting. > > I came across this posting: http://lists.cs.uiuc.edu/pipermail/llvmdev/2010-September/034464.html > which seems to be doing almost exactly what I want to do, however it was created with LLVM 2.7 in mind. Since then, from what I can tell, the LLVM MC project has been created and blown away the usefulness of the descriptions contained in that thread. (Example: AsmPrinter::processDebugLoc() no longer exists). Does anyone have any pointers on how to update this for LLVM/clang 3.0? > > To be more specific, I've added a special stack guard intrinsic similar to StackProtector.cpp which uses a per function random immediate instead of ___stack_chk_guard. What I am trying to accomplish is to get the offset into the final x86 object file of each one of these immediate values. > > An example of the output in Assembly looks like: > movq $653406579, -8(%rbp) ## imm = 0x26F23173 > > In reality, I'd settle for a simple way to get the offset into the Obj file of the movq instruction that I could putput to a separate file, but It'd be better if I could get it into the DWARF tags. > > Does anyone have any familiarity with this to give me some pointers?You basically want to create a label and a relocation to that label in the dwarf output. You'll need to make up your own tag for this sort of thing. -eric
Seemingly Similar Threads
- [LLVMdev] No DWARF line number info with HasDotLocAndDotFile = true
- [LLVMdev] help converting llvm metadata into dwarf tags
- [LLVMdev] No DWARF line number info with HasDotLocAndDotFile = true
- [LLVMdev] help converting llvm metadata into dwarf tags
- [LLVMdev] help converting llvm metadata into dwarf tags