[lldb-dev] [Bug 16191] New: LLDB fails to evaluate expressions that dereference a struct when inferior is built with recent Clang
Malea, Daniel
daniel.malea at intel.com
Mon Jun 3 09:02:41 PDT 2013
Hi Greg, indeed I checked the DWARF and it looks like the definition for that struct is missing from the binary built with newer clang. In the non-working case, the DWARF contains only a declaration:
< 1><0x00000026> DW_TAG_structure_type
DW_AT_name "Summarize"
DW_AT_declaration yes(1)
As opposed to the full definition in the working case (clang 3.3.1):
< 1><0x0000002d> DW_TAG_structure_type
DW_AT_name "Summarize"
DW_AT_byte_size 0x00000008
DW_AT_decl_file 0x00000001 /home/daniel/dev/llvm/tools/lldb/test/functionalities/data-formatter/rdar-9973865/main.cpp
DW_AT_decl_line 0x0000000b
< 2><0x00000035> DW_TAG_member
DW_AT_name "first"
DW_AT_type <0x00000026>
DW_AT_decl_file 0x00000001 /home/daniel/dev/llvm/tools/lldb/test/functionalities/data-formatter/rdar-9973865/main.cpp
DW_AT_decl_line 0x0000000d
DW_AT_data_member_location DW_OP_plus_uconst 0
DW_AT_accessibility DW_ACCESS_public
< 2><0x00000044> DW_TAG_member
DW_AT_name "second"
DW_AT_type <0x00000026>
DW_AT_decl_file 0x00000001 /home/daniel/dev/llvm/tools/lldb/test/functionalities/data-formatter/rdar-9973865/main.cpp
DW_AT_decl_line 0x0000000e
DW_AT_data_member_location DW_OP_plus_uconst 4
DW_AT_accessibility DW_ACCESS_public
So it definitely looks like a clang bug.. Do you know if there's a PR open that I can cross-reference?
Thanks,
Dan
From: Greg Clayton <gclayton at apple.com<mailto:gclayton at apple.com>>
Date: Friday, 31 May, 2013 5:40 PM
To: Daniel Malea <daniel.malea at intel.com<mailto:daniel.malea at intel.com>>
Subject: Fwd: [lldb-dev] [Bug 16191] New: LLDB fails to evaluate expressions that dereference a struct when inferior is built with recent Clang
Check the debug info and see if "summarize_t" or "Summarize" has a full definition available in the debug info. Feel free to send me the elf file and I will take a look.
Greg
Begin forwarded message:
From: bugzilla-daemon at llvm.org<mailto:bugzilla-daemon at llvm.org>
Subject: [lldb-dev] [Bug 16191] New: LLDB fails to evaluate expressions that dereference a struct when inferior is built with recent Clang
Date: May 31, 2013 1:59:32 PM PDT
To: lldb-dev at cs.uiuc.edu<mailto:lldb-dev at cs.uiuc.edu>
Bug ID 16191<http://llvm.org/bugs/show_bug.cgi?id=16191>
Summary LLDB fails to evaluate expressions that dereference a struct when inferior is built with recent Clang
Product lldb
Version unspecified
Hardware PC
OS All
Status NEW
Severity normal
Priority P
Component All Bugs
Assignee lldb-dev at cs.uiuc.edu<mailto:lldb-dev at cs.uiuc.edu>
Reporter daniel.malea at intel.com<mailto:daniel.malea at intel.com>
Classification Unclassified
Created attachment 10606<x-msg://153/attachment.cgi?id=10606> [details]<x-msg://153/attachment.cgi?id=10606&action=edit>
expression evaluation log (failing) missing struct declaration
This issue appears when using ToT Clang to build the LLDB test suite. The
failure is reproducible in Test-rdar-9973865, either with the harness or
manually. To reproduce with the test, do:
python dotest --executable <path-to-lldb> -p Test-rdar-9973865
To reproduce manually:
cd <lldb-dir>/test/functionalities/data-formatter/rdar-9973865
make CC=/path/to/recent/clang
lldb ./a.out
(lldb) b 27
(lldb) run
(lldb) print *mine_ptr
Expected result: lldb prints contents of the struct.
Actual result:
error: incomplete type 'summarize_t' (aka 'Summarize') where a complete type is
required
note: forward declaration of 'Summarize'
error: 1 errors parsing expression
However, the 'summarize_t' type is declared in the main.cpp file, but LLDB
doesn't seem to pass this declaration on to Clang. Not sure if this is really
an LLDB bug, or an Clang bug.
________________________________
You are receiving this mail because:
* You are the assignee for the bug.
_______________________________________________
lldb-dev mailing list
lldb-dev at cs.uiuc.edu<mailto:lldb-dev at cs.uiuc.edu>
http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
More information about the lldb-dev
mailing list