Hi Vasco,

Thanks a lot for your help!

By following your instructions i could run the command: "$ gdb --args 
build/bin/rt -z1 -l5 -w 640 -n 480 -o image.png build/bool.g sp.r”, and was 
able to set the breakpoint at the desired location in the ‘primitive_util.c’ 
file!

Cheers,
Marco Domingues 

> On 6 Apr 2017, at 20:09, Vasco Alexandre da Silva Costa 
> <vasco.co...@gmail.com> wrote:
> 
> On Thu, Apr 6, 2017 at 7:54 PM, Vasco Alexandre da Silva Costa 
> <vasco.co...@gmail.com <mailto:vasco.co...@gmail.com>> wrote:
> 
> On Thu, Apr 6, 2017 at 7:50 PM, Vasco Alexandre da Silva Costa 
> <vasco.co...@gmail.com <mailto:vasco.co...@gmail.com>> wrote:
> 
> On Thu, Apr 6, 2017 at 2:51 PM, Marco Domingues <marcodomingue...@gmail.com 
> <mailto:marcodomingue...@gmail.com>> wrote:
> I’m trying to use ‘gdb’ to debug an OpenCL kernel but I’m having trouble 
> using the command: (gdb) break filename:linenum
> 
> My idea was to set a breakpoint in the function “clEnqueueNDRangeKernel” (in 
> src/librt/primitives/primitive_util.c) because I read online that kernels are 
> only visible to ‘gdb’ after they are compiled.
> 
> It is probably worse than that. The kernels likely are only visible after 
> they're both compiled and linked.
>  
> But when I run the following commands inside the brlcad main directory:
> 
> $ gdb --args build/bin/mged build/bool.g
> (gdb) b src/librt/primitives/primitive_util.c:1063
> 
> I get “no source file named src/librt/primitives/primitive_util.c”, even when 
> i try to specify the full path to the file
> 
> Maybe someone that have used ‘gdb’ with brlcad before could point me what is 
> missing?
> 
> There's another thing you can do, other than set a breakpoint. You can emit 
> an interrupt in the code (e.g. with kill(0, SIGINT)). Then the executable 
> will stop. Then you can just use the 'continue' command. Or just hit CTRL-C 
> in the middle of execution. Assuming the code takes long enough to run that 
> you can do it...
> 
> Still, if you want to debug the raytracer backend, it is not 'mged' you want 
> to debug. What you want to debug is the 'rt' command. 'mged' is just a 
> graphic interface that IIRC has no rendering code in it. That's probably why 
> you can't set the breakpoint in the first place. The code isn't in 'mged'. 
> One good way to check this out, assuming you compiled with debug symbols, is 
> to run 'ldd build/bin/mged' and see if 'librt.so' shows up in the list of 
> linked libraries.
> 
> If you can also a list of the debug symbols in an executable or a library 
> with the 'nm' command. e.g. 'nm -S build/bin/mged'.
> 
> PS: Of course what I meant to say was:
> You can also list the debug symbols in an executable or library with the 'nm' 
> command. e.g. 'nm -S build/bin/mged'.
> 
> PPS: You can run 'rt' outside 'mged' like this:
> $ rt -w 640 -n 480 -o image.png build.g my_object 
> 
> -- 
> Vasco Alexandre da Silva Costa
> PhD in Computer Engineering (Computer Graphics)
> Instituto Superior Técnico/University of Lisbon, Portugal
> 
> On Thu, Apr 6, 2017 at 7:54 PM, Vasco Alexandre da Silva Costa 
> <vasco.co...@gmail.com <mailto:vasco.co...@gmail.com>> wrote:
> On Thu, Apr 6, 2017 at 7:50 PM, Vasco Alexandre da Silva Costa 
> <vasco.co...@gmail.com <mailto:vasco.co...@gmail.com>> wrote:
> 
> On Thu, Apr 6, 2017 at 2:51 PM, Marco Domingues <marcodomingue...@gmail.com 
> <mailto:marcodomingue...@gmail.com>> wrote:
> I’m trying to use ‘gdb’ to debug an OpenCL kernel but I’m having trouble 
> using the command: (gdb) break filename:linenum
> 
> My idea was to set a breakpoint in the function “clEnqueueNDRangeKernel” (in 
> src/librt/primitives/primitive_util.c) because I read online that kernels are 
> only visible to ‘gdb’ after they are compiled.
> 
> It is probably worse than that. The kernels likely are only visible after 
> they're both compiled and linked.
>  
> But when I run the following commands inside the brlcad main directory:
> 
> $ gdb --args build/bin/mged build/bool.g
> (gdb) b src/librt/primitives/primitive_util.c:1063
> 
> I get “no source file named src/librt/primitives/primitive_util.c”, even when 
> i try to specify the full path to the file
> 
> Maybe someone that have used ‘gdb’ with brlcad before could point me what is 
> missing?
> 
> There's another thing you can do, other than set a breakpoint. You can emit 
> an interrupt in the code (e.g. with kill(0, SIGINT)). Then the executable 
> will stop. Then you can just use the 'continue' command. Or just hit CTRL-C 
> in the middle of execution. Assuming the code takes long enough to run that 
> you can do it...
> 
> Still, if you want to debug the raytracer backend, it is not 'mged' you want 
> to debug. What you want to debug is the 'rt' command. 'mged' is just a 
> graphic interface that IIRC has no rendering code in it. That's probably why 
> you can't set the breakpoint in the first place. The code isn't in 'mged'. 
> One good way to check this out, assuming you compiled with debug symbols, is 
> to run 'ldd build/bin/mged' and see if 'librt.so' shows up in the list of 
> linked libraries.
> 
> If you can also a list of the debug symbols in an executable or a library 
> with the 'nm' command. e.g. 'nm -S build/bin/mged'.
> 
> PS: Of course what I meant to say was:
> You can also list the debug symbols in an executable or library with the 'nm' 
> command. e.g. 'nm -S build/bin/mged'.
> 
> Heh,
>  
> -- 
> Vasco Alexandre da Silva Costa
> PhD in Computer Engineering (Computer Graphics)
> Instituto Superior Técnico/University of Lisbon, Portugal
> 
> 
> 
> -- 
> Vasco Alexandre da Silva Costa
> PhD in Computer Engineering (Computer Graphics)
> Instituto Superior Técnico/University of Lisbon, Portugal
> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! 
> http://sdm.link/slashdot_______________________________________________
> BRL-CAD Developer mailing list
> brlcad-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/brlcad-devel

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
BRL-CAD Developer mailing list
brlcad-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/brlcad-devel

Reply via email to