erikchen marked 3 inline comments as done. erikchen added inline comments.
================ Comment at: lldb/lit/SymbolFile/DWARF/deterministic-build.cpp:6 +// RUN: ZERO_AR_DATE=1 %clang %t.o -g -o %t +// RUN: %lldb %t -s %S/Inputs/deterministic-build.lldbinit -o exit | FileCheck %s +// CHECK: int main() { return 0; } ---------------- labath wrote: > erikchen wrote: > > JDevlieghere wrote: > > > If you check for `stop reason = breakpoint` instead of the source line, > > > you don't have to work around the comments getting printed. You wouldn't > > > even need an input file anymore either. > > > > > > ``` > > > // RUN: %lldb %t -o "breakpoint set -name main" -o "run" -o "exit" | > > > FileCheck %s > > > // CHECK: stop reason = breakpoint > > > ``` > > I'm sorry but I don't understand how that would work. Even if object file > > symbols aren't loaded, lldb is still able to set a breakpoint at main, e.g.: > > > > /Users/erikchen/projects/llvm-project/build/bin/lldb --no-lldbinit -S > > /Users/erikchen/projects/llvm-project/build/tools/lldb/lit/lit-lldb-init > > /Users/erikchen/projects/llvm-project/build/tools/lldb/lit/SymbolFile/DWARF/Output/deterministic-build.cpp.tmp > > -o "breakpoint set -name main" -o "run" -o "exit" > > (lldb) command source -s 0 > > '/Users/erikchen/projects/llvm-project/build/tools/lldb/lit/lit-lldb-init' > > Executing commands in > > '/Users/erikchen/projects/llvm-project/build/tools/lldb/lit/lit-lldb-init'. > > (lldb) # LLDB init file for the LIT tests. > > (lldb) settings set symbols.enable-external-lookup false > > (lldb) settings set plugin.process.gdb-remote.packet-timeout 60 > > (lldb) settings set interpreter.echo-comment-commands false > > (lldb) target create > > "/Users/erikchen/projects/llvm-project/build/tools/lldb/lit/SymbolFile/DWARF/Output/deterministic-build.cpp.tmp" > > Current executable set to > > '/Users/erikchen/projects/llvm-project/build/tools/lldb/lit/SymbolFile/DWARF/Output/deterministic-build.cpp.tmp' > > (x86_64). > > (lldb) breakpoint set -name main > > error: deterministic-build.cpp.tmp debug map object file > > '/Users/erikchen/projects/llvm-project/build/tools/lldb/lit/SymbolFile/DWARF/Output/deterministic-build.cpp.tmp.o' > > has changed (actual time is 2019-08-07 11:40:55.000000000, debug map time > > is 1969-12-31 16:00:00.000000000) since this executable was linked, file > > will be ignored > > Breakpoint 1: where = deterministic-build.cpp.tmp`main, address = > > 0x0000000100000fa0 > > (lldb) run > > Process 18131 stopped > > * thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1 > > frame #0: 0x0000000100000fa0 deterministic-build.cpp.tmp`main > > deterministic-build.cpp.tmp`main: > > -> 0x100000fa0 <+0>: pushq %rbp > > 0x100000fa1 <+1>: movq %rsp, %rbp > > 0x100000fa4 <+4>: xorl %eax, %eax > > 0x100000fa6 <+6>: movl $0x0, -0x4(%rbp) > > > > Process 18131 launched: > > '/Users/erikchen/projects/llvm-project/build/tools/lldb/lit/SymbolFile/DWARF/Output/deterministic-build.cpp.tmp' > > (x86_64) > > (lldb) exit > > > Maybe you could set a file+line breakpoint instead of function one. That > would only work if line tables get parsed (which live in the .o file if I > know my MachO correctly). That way you wouldn't even have to run the process, > which means this test might one day work on other systems too (if/when lld is > able to link MachO files reasonably). that worked, thanks. I've updated the patch. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D65826/new/ https://reviews.llvm.org/D65826 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits