[Lldb-commits] [lldb] 6037936 - [LLDB][NativePDB] Replace blocks.cpp with blocks.s so the test won't be affected by codegen changes.
Zequan Wu via lldb-commits
lldb-commits at lists.llvm.org
Fri Sep 9 15:47:42 PDT 2022
Author: Zequan Wu
Date: 2022-09-09T15:47:27-07:00
New Revision: 603793698928c1f32772248840a45ddcf4914bd2
URL: https://github.com/llvm/llvm-project/commit/603793698928c1f32772248840a45ddcf4914bd2
DIFF: https://github.com/llvm/llvm-project/commit/603793698928c1f32772248840a45ddcf4914bd2.diff
LOG: [LLDB][NativePDB] Replace blocks.cpp with blocks.s so the test won't be affected by codegen changes.
Added:
lldb/test/Shell/SymbolFile/NativePDB/blocks.s
Modified:
lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp
Removed:
lldb/test/Shell/SymbolFile/NativePDB/blocks.cpp
################################################################################
diff --git a/lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp b/lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp
index 75bff62404cc3..2781ae0c87abf 100644
--- a/lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp
+++ b/lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp
@@ -369,9 +369,8 @@ Block &SymbolFileNativePDB::CreateBlock(PdbCompilandSymId block_id) {
m_index->MakeVirtualAddress(block.Segment, block.CodeOffset);
lldb::addr_t func_base =
func->GetAddressRange().GetBaseAddress().GetFileAddress();
- Block::Range range = Block::Range(block_base - func_base, block.CodeSize);
if (block_base >= func_base)
- child_block->AddRange(range);
+ child_block->AddRange(Block::Range(block_base - func_base, block.CodeSize));
else {
GetObjectFile()->GetModule()->ReportError(
"S_BLOCK32 at modi: %d offset: %d: adding range [0x%" PRIx64
diff --git a/lldb/test/Shell/SymbolFile/NativePDB/blocks.cpp b/lldb/test/Shell/SymbolFile/NativePDB/blocks.cpp
deleted file mode 100644
index 1d7431847921d..0000000000000
--- a/lldb/test/Shell/SymbolFile/NativePDB/blocks.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
-// clang-format off
-// REQUIRES: lld, x86
-
-// Test block range is set.
-// RUN: %clang_cl --target=x86_64-windows-msvc -Od -Z7 -GS- -c /Fo%t.obj -- %s
-// RUN: lld-link -debug:full -nodefaultlib -entry:main -base:0x140000000 %t.obj -out:%t.exe -pdb:%t.pdb
-// RUN: env LLDB_USE_NATIVE_PDB_READER=1 %lldb %t.exe -o "image lookup -a 0x140001014 -v" | FileCheck %s
-
-int main() {
- int count = 0;
- for (int i = 0; i < 3; ++i) {
- ++count;
- }
- return count;
-}
-
-// CHECK: Function: id = {{.*}}, name = "main", range = [0x0000000140001000-0x000000014000104b)
-// CHECK-NEXT: FuncType: id = {{.*}}, byte-size = 0, compiler_type = "int (void)"
-// CHECK-NEXT: Blocks: id = {{.*}}, range = [0x140001000-0x14000104b)
-// CHECK-NEXT: id = {{.*}}, range = [0x140001014-0x140001042)
diff --git a/lldb/test/Shell/SymbolFile/NativePDB/blocks.s b/lldb/test/Shell/SymbolFile/NativePDB/blocks.s
new file mode 100644
index 0000000000000..7a124702e4757
--- /dev/null
+++ b/lldb/test/Shell/SymbolFile/NativePDB/blocks.s
@@ -0,0 +1,213 @@
+// clang-format off
+// REQUIRES: lld, x86
+
+// Test block range is set.
+// RUN: llvm-mc -triple=x86_64-windows-msvc --filetype=obj %s > %t.obj
+// RUN: lld-link /debug:full /nodefaultlib /entry:main %t.obj /out:%t.exe /base:0x140000000
+// RUN: env LLDB_USE_NATIVE_PDB_READER=1 %lldb %t.exe -o "image lookup -a 0x140001014 -v" -o "exit" | FileCheck %s
+
+// CHECK: Function: id = {{.*}}, name = "main", range = [0x0000000140001000-0x0000000140001044)
+// CHECK-NEXT: FuncType: id = {{.*}}, byte-size = 0, compiler_type = "int (void)"
+// CHECK-NEXT: Blocks: id = {{.*}}, range = [0x140001000-0x140001044)
+// CHECK-NEXT: id = {{.*}}, range = [0x140001014-0x14000103b)
+
+
+ .text
+ .def @feat.00;
+ .scl 3;
+ .type 0;
+ .endef
+ .globl @feat.00
+.set @feat.00, 0
+ .intel_syntax noprefix
+ .file "blocks.cpp"
+ .def main;
+ .scl 2;
+ .type 32;
+ .endef
+ .globl main # -- Begin function main
+ .p2align 4, 0x90
+main: # @main
+.Lfunc_begin0:
+ .cv_func_id 0
+ .cv_file 1 "/tmp/blocks.cpp" "4CC0785E17ACF09C657F740775661395" 1
+ .cv_loc 0 1 1 0 # blocks.cpp:1:0
+.seh_proc main
+# %bb.0: # %entry
+ sub rsp, 16
+ .seh_stackalloc 16
+ .seh_endprologue
+ mov dword ptr [rsp + 12], 0
+.Ltmp0:
+ .cv_loc 0 1 2 0 # blocks.cpp:2:0
+ mov dword ptr [rsp + 8], 0
+.Ltmp1:
+ .cv_loc 0 1 3 0 # blocks.cpp:3:0
+ mov dword ptr [rsp + 4], 0
+.LBB0_1: # %for.cond
+ # =>This Inner Loop Header: Depth=1
+ cmp dword ptr [rsp + 4], 3
+ jge .LBB0_4
+# %bb.2: # %for.body
+ # in Loop: Header=BB0_1 Depth=1
+.Ltmp2:
+ .cv_loc 0 1 4 0 # blocks.cpp:4:0
+ mov eax, dword ptr [rsp + 8]
+ add eax, 1
+ mov dword ptr [rsp + 8], eax
+.Ltmp3:
+# %bb.3: # %for.inc
+ # in Loop: Header=BB0_1 Depth=1
+ .cv_loc 0 1 3 0 # blocks.cpp:3:0
+ mov eax, dword ptr [rsp + 4]
+ add eax, 1
+ mov dword ptr [rsp + 4], eax
+ jmp .LBB0_1
+.Ltmp4:
+.LBB0_4: # %for.end
+ .cv_loc 0 1 6 0 # blocks.cpp:6:0
+ mov eax, dword ptr [rsp + 8]
+ add rsp, 16
+ ret
+.Ltmp5:
+.Lfunc_end0:
+ .seh_endproc
+ # -- End function
+ .section .drectve,"yn"
+ .ascii " /DEFAULTLIB:libcmt.lib"
+ .ascii " /DEFAULTLIB:oldnames.lib"
+ .section .debug$S,"dr"
+ .p2align 2, 0x0
+ .long 4 # Debug section magic
+ .long 241
+ .long .Ltmp7-.Ltmp6 # Subsection size
+.Ltmp6:
+ .short .Ltmp9-.Ltmp8 # Record length
+.Ltmp8:
+ .short 4353 # Record kind: S_OBJNAME
+ .long 0 # Signature
+ .asciz "/tmp/blocks.obj" # Object name
+ .p2align 2, 0x0
+.Ltmp9:
+ .short .Ltmp11-.Ltmp10 # Record length
+.Ltmp10:
+ .short 4412 # Record kind: S_COMPILE3
+ .long 1 # Flags and language
+ .short 208 # CPUType
+ .short 16 # Frontend version
+ .short 0
+ .short 0
+ .short 0
+ .short 16000 # Backend version
+ .short 0
+ .short 0
+ .short 0
+ .asciz "clang version 16.0.0" # Null-terminated compiler version string
+ .p2align 2, 0x0
+.Ltmp11:
+.Ltmp7:
+ .p2align 2, 0x0
+ .long 241 # Symbol subsection for main
+ .long .Ltmp13-.Ltmp12 # Subsection size
+.Ltmp12:
+ .short .Ltmp15-.Ltmp14 # Record length
+.Ltmp14:
+ .short 4423 # Record kind: S_GPROC32_ID
+ .long 0 # PtrParent
+ .long 0 # PtrEnd
+ .long 0 # PtrNext
+ .long .Lfunc_end0-main # Code size
+ .long 0 # Offset after prologue
+ .long 0 # Offset before epilogue
+ .long 4098 # Function type index
+ .secrel32 main # Function section relative address
+ .secidx main # Function section index
+ .byte 0 # Flags
+ .asciz "main" # Function name
+ .p2align 2, 0x0
+.Ltmp15:
+ .short .Ltmp17-.Ltmp16 # Record length
+.Ltmp16:
+ .short 4114 # Record kind: S_FRAMEPROC
+ .long 16 # FrameSize
+ .long 0 # Padding
+ .long 0 # Offset of padding
+ .long 0 # Bytes of callee saved registers
+ .long 0 # Exception handler offset
+ .short 0 # Exception handler section
+ .long 81920 # Flags (defines frame register)
+ .p2align 2, 0x0
+.Ltmp17:
+ .short .Ltmp19-.Ltmp18 # Record length
+.Ltmp18:
+ .short 4414 # Record kind: S_LOCAL
+ .long 116 # TypeIndex
+ .short 0 # Flags
+ .asciz "count"
+ .p2align 2, 0x0
+.Ltmp19:
+ .cv_def_range .Ltmp0 .Ltmp5, frame_ptr_rel, 8
+ .short .Ltmp21-.Ltmp20 # Record length
+.Ltmp20:
+ .short 4355 # Record kind: S_BLOCK32
+ .long 0 # PtrParent
+ .long 0 # PtrEnd
+ .long .Ltmp4-.Ltmp1 # Code size
+ .secrel32 .Ltmp1 # Function section relative address
+ .secidx .Lfunc_begin0 # Function section index
+ .byte 0 # Lexical block name
+ .p2align 2, 0x0
+.Ltmp21:
+ .short .Ltmp23-.Ltmp22 # Record length
+.Ltmp22:
+ .short 4414 # Record kind: S_LOCAL
+ .long 116 # TypeIndex
+ .short 0 # Flags
+ .asciz "i"
+ .p2align 2, 0x0
+.Ltmp23:
+ .cv_def_range .Ltmp1 .Ltmp4, frame_ptr_rel, 4
+ .short 2 # Record length
+ .short 6 # Record kind: S_END
+ .short 2 # Record length
+ .short 4431 # Record kind: S_PROC_ID_END
+.Ltmp13:
+ .p2align 2, 0x0
+ .cv_linetable 0, main, .Lfunc_end0
+ .cv_filechecksums # File index to string table offset subsection
+ .cv_stringtable # String table
+ .long 241
+ .long .Ltmp25-.Ltmp24 # Subsection size
+.Ltmp24:
+ .short .Ltmp27-.Ltmp26 # Record length
+.Ltmp26:
+ .short 4428 # Record kind: S_BUILDINFO
+ .long 4104 # LF_BUILDINFO index
+ .p2align 2, 0x0
+.Ltmp27:
+.Ltmp25:
+ .p2align 2, 0x0
+ .section .debug$T,"dr"
+ .p2align 2, 0x0
+ .long 4 # Debug section magic
+ # ArgList (0x1000)
+ .short 0x6 # Record length
+ .short 0x1201 # Record kind: LF_ARGLIST
+ .long 0x0 # NumArgs
+ # Procedure (0x1001)
+ .short 0xe # Record length
+ .short 0x1008 # Record kind: LF_PROCEDURE
+ .long 0x74 # ReturnType: int
+ .byte 0x0 # CallingConvention: NearC
+ .byte 0x0 # FunctionOptions
+ .short 0x0 # NumParameters
+ .long 0x1000 # ArgListType: ()
+ # FuncId (0x1002)
+ .short 0x12 # Record length
+ .short 0x1601 # Record kind: LF_FUNC_ID
+ .long 0x0 # ParentScope
+ .long 0x1001 # FunctionType: int ()
+ .asciz "main" # Name
+ .byte 243
+ .byte 242
+ .byte 241
More information about the lldb-commits
mailing list