[PD] debugging complex extern

David Medine dmedine at ucsd.edu
Thu Apr 12 11:18:22 CEST 2018


@Miller, no I hadn't. Thanks! I knew there was something like that I had 
neglected. Now I am able to debug with gdb.

@iohannes, I am still having trouble with this technique. If I run Pd 
from the gdb prompt (with -nrt and -stderr) and a break point within the 
extern (meaning object not compiled into pd) nothing happens when I run 
the function where I want to break. If I follow the instructions on 
Hans' tutorial (run pd in a separate process then attach gdb to it) Pd 
simply hangs when I hit the break point and gdb doesn't appear to do 
anything.


On 04/11/2018 08:21 PM, IOhannes m zmölnig wrote:
> On 04/11/2018 07:03 PM, David Medine wrote:
>> I am trying to debug an extern on linux using gdb and this tutorial
>> <https://puredata.info/docs/developer/DebuggingPdExternals> (for MacOS
>> and some years old) does not work on my machine. In fact, I've tried
>> this a few times in the past with little success. The watchdog just
>> hangs when I break and gdb and Pd can't do anything.
>>
>> I remember Miller once suggesting that a way to run gdb on an extern is
>> to build it into Pd with debugging symbols on. I am trying to do this,
>> but having trouble there too. I added 'my_extern.c' to the src folder
>> and to the list of .c files that comprise SRC in makefile.gnu. I also
>> added -g to CFLAGS. Everything compiles and I see 'my_extern.o' in the
>> obj folder, but the extern doesn't load when I create the object in Pd.
>>
>> When I run pd from gdb, i can set a break point on my_extern_new, but
>> when I create the object, I just get a ...cannot create message in the
>> console and no debugging symbols. I feel like I'm missing a step somewhere.
>>
> i never had problems with using gdb and "external" objects (that is:
> objects, not copmiled into Pd).
>
> i'm still using gdb, as i'm on linux. on macOS i hear that you should
> use the llvm based debugger instead.
>
> a few tricks:
>
> - compile your external with "-g" (so it includes debugging symbols; i
> still think that it is a shame that pd-lib-builder doesn't do that by
> default; practically all my projects compile with "-g" all the time)
> - make sure that you are running Pd with "-nrt" (so you don't have
> "watchdog...signalling Pd" messages all over the place once the
> execution is halted)
> - run pd with "-stderr"
> - before setting any breakpoints, do a "warm up" run: just run Pd
> (inside the debugger) and load the external. after this, the debugger
> should be able to resolve all the symbols.
>
>
>
>
> gfmdsar
> IOhannes
>
>
>
> _______________________________________________
> Pd-list at lists.iem.at mailing list
> UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20180412/46585717/attachment.html>


More information about the Pd-list mailing list