<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<div name="messageBodySection">
<div dir="auto">Rainer,<br />
<br />
Thanks for the hints!<br />
<br />
Here’s what I get:<br />
<br />
(gdb)  break mktemp.c:99<br />
Breakpoint 1 at 0x801290036: file mktemp.c, line 99.<br />
(gdb) r<br />
Starting program: /opt/local/libexec/macports/bin/tclsh8.5 <br />
% /opt/local/bin/portindex<br />
[Attaching after LWP 114537 of process 29657 fork to child LWP 106805 of process 29675]<br />
[New inferior 2 (process 29675)]<br />
process 29675 is executing new program: /opt/local/libexec/macports/bin/tclsh8.5<br />
Reading symbols from /opt/local/libexec/macports/bin/tclsh8.5...<br />
Reading symbols from /opt/local/libexec/macports/lib/libtcl8.5.so...<br />
Reading symbols from /opt/local/libexec/macports/lib/macports1.0/MacPorts.so...<br />
Reading symbols from /opt/local/libexec/macports/lib/pextlib1.0/Pextlib.so...<br />
Reading symbols from /opt/local/libexec/macports/lib/registry2.0/registry.so...<br />
Reading symbols from /opt/local/libexec/macports/lib/tclx8.4/libtclx8.4.so...<br />
Reading symbols from /opt/local/libexec/macports/lib/machista1.0/machista.so...<br />
Creating port index in /opt/local/var/macports/sources/github.com/macports/macports-ports<br />
[Switching to LWP 106805 of process 29675]<br />
<br />
Thread 2.1 hit Breakpoint 1, MktempCmd (clientData=<optimized out>, interp=0x800a52550, objc=<optimized out>, objv=<optimized out>) at mktemp.c:99<br />
<span style="white-space:pre">99                tcl_result = Tcl_NewStringObj(sp, -1);</span><br />
(gdb) p sp<br />
$1 = 0xa51b60 <error: Cannot access memory at address 0xa51b60><br />
(gdb) p template<br />
$2 = 0x800a51b60 "/tmp/mports.portindex.jSKMYigM"<br /></div>
</div>
<div name="messageSignatureSection"><br />
<div class="matchFont">Marius
<div dir="auto">__</div>
<div dir="auto">Marius Schamschula</div>
</div>
</div>
<div name="messageReplySection">On Jun 24, 2021, 3:24 PM -0500, Rainer Müller <raimue@macports.org>, wrote:<br />
<blockquote type="cite" style="border-left-color: grey; border-left-width: thin; border-left-style: solid; margin: 5px 5px;padding-left: 10px;">On 24/06/2021 03.30, Marius Schamschula wrote:<br />
<blockquote type="cite">I’m a gdb noob, particularly as it relates to Tcl scripts.<br /></blockquote>
<br />
Of course you could also achieve the same checks by adding some printf<br />
statements to the C source. :-)<br />
<br />
<blockquote type="cite">When I load<br />
<br />
gdb /opt/local/libexec/macports/bin/tclsh8.5 ./tclsh8.5.core<br />
<br />
And set my breakpoint<br />
<br />
(gdb) break mktemp.c:99<br />
<br />
And tell gdb to run, I get a tclsh prompt. If I launch<br />
/opt/local/bin/portindex<br />
<br />
I get<br />
<br />
[Detaching after fork from child process 85805]<br />
Creating port index in<br />
/opt/local/var/macports/sources/github.com/macports/macports-ports<br />
child killed: segmentation violation<br /></blockquote>
<br />
By default, gdb will only debug the parent process across a fork. You<br />
can change this with the following commands before running the program:<br />
<br />
set follow-fork-mode child<br />
set detach-on-fork off<br />
<br />
This way gdb will stay attached to all processes that are forked and<br />
also to the parent. You can view them with 'info inferior' and switch<br />
between them with 'inferior <n>'.<br />
<br />
Rainer<br /></blockquote>
</div>
</body>
</html>