[lldb-dev] get function name from dwarf info

Carlo Kok via lldb-dev lldb-dev at lists.llvm.org
Fri Oct 7 07:32:14 PDT 2016


>> How do I get the dw_at_name field? I don't need lldb to decypher the
>> mangling I use, I just want access to the linkage name and real encoded
>> name?
>>
>> Also how do I get the type this is contained in (presuming there is one
>> ofc)?
> I am not sure what you are trying to do. Can you elaborate a little.

I have a custom language where it's ~ equivalent to the c++ class:

class TEST{
     private:
     int INSTANCEFIELD;
     static int STATICFIELD;
     public:
     void INSTANCEMETHOD() {
         INSTANCEFIELD++;
     }
     static void STATICMETHOD() {
         STATICFIELD++;
     }
};

the name "STATICMETHOD" is properly encoded in the dwarf debug info 
(where linkage name is the mangled name). I want "STATICMETHOD" back as 
it would be encoded in DW_AT_NAME.

I also want to get the SBType for "TEST" when I have the SBFunction for 
INSTANCEMETHOD/STATICMETHOD.

Both things are properly encoded in dwarf (as matching the c++ output), 
however I can't seem to find the right SB method to get it.


>
>>
>> Lastly: How do I encode if a method is static or not, I couldn't find
>> any difference in what C++ does for instance vs static.
>
> There is  "DW_AT_object_pointer". Debuggers can also make that decision
> based on presence of "this" parameter.
>

Thanks.

-- 
Carlo Kok
RemObjects Software


More information about the lldb-dev mailing list