[lldb-dev] target modules lookup

jingham at apple.com jingham at apple.com
Wed Jul 10 11:25:47 PDT 2013


Maybe that's a little too categorical.  If somebody wanted to add a flag to target modules add to look for arguments and locals, that might be useful in some cases.  But it should not be the default search.

Jim

On Jul 10, 2013, at 11:22 AM, jingham at apple.com wrote:

> No, that is not expected to work.  "target modules lookup" only looks up globally visible symbols and functions.  argc is a function argument, and not the sort of thing "target modules lookup" looks for.  If it did look for arguments (and locals???) it would be really really slow and probably produce way more output than you want.
> 
> Jim
> On Jul 10, 2013, at 10:56 AM, Michael Sartain <mikesart at gmail.com> wrote:
> 
>> Is this supposed to work?
>> 
>> (lldb) target modules lookup -Av -s argc
>> 
>> It does nothing. Looking up the address of argc and using it also does nothing.
>> 
>> (lldb) p &argc
>> (int *) $3 = 0x00007fff506c9458
>> (lldb) target modules lookup -Av -a 0x00007fff506c9458
>> 
>> It does work with the function "main":
>> 
>> (lldb) target modules lookup -Av -F main
>> 1 match found in /home/mikesart/data/src/blah/build/blah:
>>        Address: blah[0x0000000000409970] (blah..text + 368)
>>        Summary: blah`main at blah.cpp:160
>>         Module: file = "/home/mikesart/data/src/blah/build/blah", arch = "x86_64"
>>    CompileUnit: id = {0x00000000}, file = "/home/mikesart/data/src/blah/blah.cpp", language = "ISO C++:1998"
>>       Function: id = {0x000003c9}, name = "main", range = [0x0000000000409970-0x000000000040a275)
>>       FuncType: id = {0x000003c9}, decl = blah.cpp:159, clang_type = "int (int, char **)"
>>         Blocks: id = {0x000003c9}, range = [0x00409970-0x0040a275)
>>      LineEntry: [0x0000000000409970-0x0000000000409991): /home/mikesart/data/src/blah/blah.cpp:160
>>         Symbol: id = {0x00000076}, range = [0x0000000000409970-0x000000000040a275), name="main"
>>       Variable: id = {0x000003e6}, name = "argc", type= "int", location = DW_OP_fbreg(-8), decl = blah.cpp:159
>>       Variable: id = {0x000003f4}, name = "argv", type= "char **", location = DW_OP_fbreg(-16), decl = blah.cpp:159
>>       Variable: id = {0x00000402}, name = "msg", type= "Person", location = DW_OP_fbreg(-248), decl = blah.cpp:297
>> 
>> As does using the address for "main".
>> 
>> (lldb) p main
>> (int (*)(int, char **)) $4 = 0x0000000000409970 (blah`main at blah.cpp:160)
>> (lldb) target modules lookup -Av -a 0x0000000000409970
>>      Address: blah[0x0000000000409970] (blah..text + 368)
>>      Summary: blah`main at blah.cpp:160
>>       Module: file = "/home/mikesart/data/src/blah/build/blah", arch = "x86_64"
>>  CompileUnit: id = {0x00000000}, file = "/home/mikesart/data/src/blah/blah.cpp", language = "ISO C++:1998"
>>     Function: id = {0x000003c9}, name = "main", range = [0x0000000000409970-0x000000000040a275)
>>     FuncType: id = {0x000003c9}, decl = blah.cpp:159, clang_type = "int (int, char **)"
>>       Blocks: id = {0x000003c9}, range = [0x00409970-0x0040a275)
>>    LineEntry: [0x0000000000409970-0x0000000000409991): /home/mikesart/data/src/blah/blah.cpp:160
>>       Symbol: id = {0x00000076}, range = [0x0000000000409970-0x000000000040a275), name="main"
>>     Variable: id = {0x000003e6}, name = "argc", type= "int", location = DW_OP_fbreg(-8), decl = blah.cpp:159
>>     Variable: id = {0x000003f4}, name = "argv", type= "char **", location = DW_OP_fbreg(-16), decl = blah.cpp:159
>>     Variable: id = {0x00000402}, name = "msg", type= "Person", location = DW_OP_fbreg(-248), decl = blah.cpp:297
>> 
>> _______________________________________________
>> lldb-dev mailing list
>> lldb-dev at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev




More information about the lldb-dev mailing list