Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This patch improves the support of DWARF5. Particularly the reporting of source code locations. Differential revision: https://reviews.llvm.org/D51935 llvm-svn: 342153
- Loading branch information
George Rimar
committed
Sep 13, 2018
1 parent
f353ae1
commit c6c7bfc
Showing
18 changed files
with
393 additions
and
81 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
34 changes: 34 additions & 0 deletions
34
lldb/packages/Python/lldbsuite/test/functionalities/show_location/TestShowLocationDwarf5.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
import lldb | ||
from lldbsuite.test.lldbtest import * | ||
from lldbsuite.test.decorators import * | ||
|
||
# This test checks that source code location is shown correctly | ||
# when DWARF5 debug information is used. | ||
|
||
class TestTargetSourceMap(TestBase): | ||
|
||
mydir = TestBase.compute_mydir(__file__) | ||
|
||
def test_source_map(self): | ||
# Set the target soure map to map "./" to the current test directory. | ||
yaml_path = os.path.join(self.getSourceDir(), "a.yaml") | ||
yaml_base, ext = os.path.splitext(yaml_path) | ||
obj_path = self.getBuildArtifact(yaml_base) | ||
self.yaml2obj(yaml_path, obj_path) | ||
|
||
def cleanup(): | ||
if os.path.exists(obj_path): | ||
os.unlink(obj_path) | ||
|
||
# Execute the cleanup function during test case tear down. | ||
self.addTearDownHook(cleanup) | ||
|
||
# Create a target with the object file we just created from YAML | ||
target = self.dbg.CreateTarget(obj_path) | ||
|
||
# Check we are able to show the locations properly. | ||
self.expect("b main", VALID_BREAKPOINT_LOCATION, | ||
substrs=['main + 13 at test.cpp:2:3, address = 0x000000000040052d']) | ||
|
||
self.expect("b foo", VALID_BREAKPOINT_LOCATION, | ||
substrs=['foo() + 4 at test.cpp:6:1, address = 0x0000000000400534']) |
58 changes: 58 additions & 0 deletions
58
lldb/packages/Python/lldbsuite/test/functionalities/show_location/a.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
# This file is a shorten version of the output | ||
# produced with the following invocations and input: | ||
# ./clang test.cpp -g -gdwarf-5 -o test.exe | ||
# ./obj2yaml test.exe > test.yaml | ||
# | ||
# // test.cpp | ||
# int main() { | ||
# return 0; | ||
# } | ||
# | ||
# void foo() { | ||
# } | ||
|
||
--- !ELF | ||
FileHeader: | ||
Class: ELFCLASS64 | ||
Data: ELFDATA2LSB | ||
Type: ET_EXEC | ||
Machine: EM_X86_64 | ||
Entry: 0x0000000000400440 | ||
Sections: | ||
- Name: .text | ||
Type: SHT_PROGBITS | ||
Flags: [ SHF_ALLOC, SHF_EXECINSTR ] | ||
Address: 0x0000000000400440 | ||
AddressAlign: 0x0000000000000010 | ||
Content: 31ED4989D15E4889E24883E4F0505449C7C0B005400048C7C14005400048C7C720054000E8B7FFFFFFF4660F1F44000055B820204000483D202040004889E57417B8000000004885C0740D5DBF20204000FFE00F1F4400005DC3660F1F440000BE20204000554881EE202040004889E548C1FE034889F048C1E83F4801C648D1FE7415B8000000004885C0740B5DBF20204000FFE00F1F005DC3660F1F440000803D391B0000007517554889E5E87EFFFFFFC605271B0000015DC30F1F440000F3C30F1F4000662E0F1F840000000000554889E55DEB89660F1F840000000000554889E531C0C745FC000000005DC390554889E55DC3662E0F1F840000000000415741564189FF415541544C8D25B618000055488D2DB6180000534989F64989D54C29E54883EC0848C1FD03E87FFEFFFF4885ED742031DB0F1F8400000000004C89EA4C89F64489FF41FF14DC4883C3014839EB75EA4883C4085B5D415C415D415E415FC390662E0F1F840000000000F3C3 | ||
- Name: .debug_str_offsets | ||
Type: SHT_PROGBITS | ||
AddressAlign: 0x0000000000000001 | ||
Content: 200000000500000000000000230000002C0000004A0000004F000000530000005B000000 | ||
- Name: .debug_str | ||
Type: SHT_PROGBITS | ||
Flags: [ SHF_MERGE, SHF_STRINGS ] | ||
AddressAlign: 0x0000000000000001 | ||
Content: 636C616E672076657273696F6E20382E302E3020287472756E6B203334313935382900746573742E637070002F686F6D652F756D622F4C4C564D2F6275696C645F6C6C64622F62696E006D61696E00696E74005F5A33666F6F7600666F6F00 | ||
- Name: .debug_abbrev | ||
Type: SHT_PROGBITS | ||
AddressAlign: 0x0000000000000001 | ||
Content: 011101252513050325721710171B25110112060000022E0011011206401803253A0B3B0B49133F190000032E001101120640186E2503253A0B3B0B3F19000004240003253E0B0B0B000000 | ||
- Name: .debug_info | ||
Type: SHT_PROGBITS | ||
AddressAlign: 0x0000000000000001 | ||
Content: 50000000050001080000000001000400010800000000000000022005400000000000160000000220054000000000000F00000001560301014F000000033005400000000000060000000156050601050404050400 | ||
- Name: .debug_macinfo | ||
Type: SHT_PROGBITS | ||
AddressAlign: 0x0000000000000001 | ||
Content: '00' | ||
- Name: .debug_line | ||
Type: SHT_PROGBITS | ||
AddressAlign: 0x0000000000000001 | ||
Content: 70000000050008004C000000010101FB0E0D00010101010000000100000101011F010000000003011F020F051E021E00000000FD7C0F2E46BA561F7BDA351B04E677091E00000000FD7C0F2E46BA561F7BDA351B04E6770900090220054000000000000105030AC905003F05010A4B0202000101 | ||
- Name: .debug_line_str | ||
Type: SHT_PROGBITS | ||
Flags: [ SHF_MERGE, SHF_STRINGS ] | ||
AddressAlign: 0x0000000000000001 | ||
Content: 2F686F6D652F756D622F4C4C564D2F6275696C645F6C6C64622F62696E00746573742E63707000 | ||
... |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.