Joan Lluch via llvm-dev
2019-Nov-04 20:02 UTC
[llvm-dev] Debugging clang with debugger breakpoints ?
Hi All, I want to understand some parts of ‘clang' by setting debug breakpoints. I have successfully done so with “llc” but I found that debugger breakpoints do not work for ‘clang’ The apparent cause is that the clang code is run as a child process which is created in the ‘Execute' function of ‘Program.inc'. The debugger stops fine at breakpoints set on the main thread, but breakpoints do not work for any code that is executed as the child process. I am compiling with Xcode in case this makes a difference. Thanks in advance for any help. John
David Blaikie via llvm-dev
2019-Nov-04 20:03 UTC
[llvm-dev] Debugging clang with debugger breakpoints ?
Run clang with -### to get the underlying command line (the one that has the first argument "-cc1") and then run that command under the debugger instead. On Mon, Nov 4, 2019 at 12:02 PM Joan Lluch via llvm-dev < llvm-dev at lists.llvm.org> wrote:> Hi All, > > I want to understand some parts of ‘clang' by setting debug breakpoints. > > I have successfully done so with “llc” but I found that debugger > breakpoints do not work for ‘clang’ > > The apparent cause is that the clang code is run as a child process which > is created in the ‘Execute' function of ‘Program.inc'. The debugger stops > fine at breakpoints set on the main thread, but breakpoints do not work for > any code that is executed as the child process. I am compiling with Xcode > in case this makes a difference. > > Thanks in advance for any help. > > John > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20191104/fe5156ea/attachment.html>
Joan Lluch via llvm-dev
2019-Nov-04 20:29 UTC
[llvm-dev] Debugging clang with debugger breakpoints ?
Hi David, Thank you for your help. Please, can you elaborate on this?. The command line that I get with -### starts with this: clang version 9.0.1 (https://github.com/llvm/llvm-project.git 6e38ee067b8fa08792f551fb565bbb8ada4864b1) Target: msp430 Thread model: posix InstalledDir: /Users/joan/LLVM-9/llvm-project/build/Debug/bin "/Users/joan/LLVM-9/llvm-project/build/Debug/bin/clang" "-cc1" "-triple" "msp430" "-emit-llvm" "-disable-free" "-main-file-name" "main.c" "-mrelocation-model" "static" "-mthread-model" "posix" "-fmath-errno" "-masm-verbose" "-mconstructor-aliases" "-nostdsysteminc" "-dwarf-column-info" "-debugger-tuning=gdb" "-target-linker-version" "305" "-momit-leaf-frame-pointer" "-coverage-notes-file" "/Users/joan/Documents-Local/Relay/RelayNou/main.gcno" "-resource-dir" "/Users/joan/LLVM-9/llvm-project/build/Debug/lib/clang/9.0.1" "-internal-isystem" "/Users/joan/LLVM-9/llvm-project/build/Debug/bin/../msp430/include" "-Oz" "-fdebug-compilation-dir" "/Users/joan/Documents-Local/Relay/RelayNou" "-ferror-limit" "19" "-fmessage-length" "224" "-fobjc-runtime=gcc" "-fdiagnostics-show-option" "-fcolor-diagnostics" "-vectorize-slp" "-faddrsig" "-o" "main.ll" "-x" "c" "main.c" So what should I set on the debugger? Thanks John> On 4 Nov 2019, at 21:03, David Blaikie <dblaikie at gmail.com> wrote: > > Run clang with -### to get the underlying command line (the one that has the first argument "-cc1") and then run that command under the debugger instead. > > On Mon, Nov 4, 2019 at 12:02 PM Joan Lluch via llvm-dev <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote: > Hi All, > > I want to understand some parts of ‘clang' by setting debug breakpoints. > > I have successfully done so with “llc” but I found that debugger breakpoints do not work for ‘clang’ > > The apparent cause is that the clang code is run as a child process which is created in the ‘Execute' function of ‘Program.inc'. The debugger stops fine at breakpoints set on the main thread, but breakpoints do not work for any code that is executed as the child process. I am compiling with Xcode in case this makes a difference. > > Thanks in advance for any help. > > John > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org> > https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev <https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev>-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20191104/2942e63b/attachment.html>
David Greene via llvm-dev
2019-Nov-08 16:42 UTC
[llvm-dev] Debugging clang with debugger breakpoints ?
Joan Lluch via llvm-dev <llvm-dev at lists.llvm.org> writes:> Hi All, > > I want to understand some parts of ‘clang' by setting debug breakpoints. > > I have successfully done so with “llc” but I found that debugger breakpoints do not work for ‘clang’ > > The apparent cause is that the clang code is run as a child process > which is created in the ‘Execute' function of ‘Program.inc'. The > debugger stops fine at breakpoints set on the main thread, but > breakpoints do not work for any code that is executed as the child > process. I am compiling with Xcode in case this makes a difference.David provided one answer but if your debugger supports it, an easier way is to set the debugger to follow child processes. With gdb it would be "set follow-fork-mode child". -David
Joan Lluch via llvm-dev
2019-Nov-08 16:49 UTC
[llvm-dev] Debugging clang with debugger breakpoints ?
Hi David, I’m using the default Xcode debugger which happens to be Apple’s version of LLDB. Is there something equivalent for it?. Thanks John> On 8 Nov 2019, at 17:42, David Greene <greened at obbligato.org> wrote: > > Joan Lluch via llvm-dev <llvm-dev at lists.llvm.org> writes: > >> Hi All, >> >> I want to understand some parts of ‘clang' by setting debug breakpoints. >> >> I have successfully done so with “llc” but I found that debugger breakpoints do not work for ‘clang’ >> >> The apparent cause is that the clang code is run as a child process >> which is created in the ‘Execute' function of ‘Program.inc'. The >> debugger stops fine at breakpoints set on the main thread, but >> breakpoints do not work for any code that is executed as the child >> process. I am compiling with Xcode in case this makes a difference. > > David provided one answer but if your debugger supports it, an easier > way is to set the debugger to follow child processes. With gdb it would > be "set follow-fork-mode child". > > -David