Posted to tcl by thommey at Fri Nov 05 23:46:02 GMT 2010view pretty
/*
test.c:
#include <tcl.h>
#include <stdio.h>
int main(int argc, char **argv)
{
const char * name;
/* Tcl_FindExecutable((char*) argv[0]); */
name = Tcl_GetNameOfExecutable();
fprintf(stdout, "Hello World\n");
if (name != NULL) {
fprintf(stdout, "The tcl executable is %s\n", name);
} else {
fprintf(stdout, "The tcl executable is null\n");
}
return 0;
}
compiled with gcc -W -Wall -ggdb -o test test.c -ltcl8.5
*/
(gdb) bt full
#0 0x00000000 in ?? ()
No symbol table info available.
#1 0xb7f83f84 in ThreadStorageGetHashTable (id=0xb7d178d0) at /usr/src/tcl8.5.8/unix/../generic/tclThreadStorage.c:212
index = 38
hPtr = 0xbffff698
isNew = -1209838851
hashTablePtr = 0x0
#2 0xb7f840d4 in TclpThreadDataKeyGet (keyPtr=0xb7fc4e18) at /usr/src/tcl8.5.8/unix/../generic/tclThreadStorage.c:336
hashTablePtr = 0x1
hPtr = 0x0
#3 0xb7f824f1 in Tcl_GetThreadData (keyPtr=0xb7fc4e18, size=4) at /usr/src/tcl8.5.8/unix/../generic/tclThread.c:87
result = 0xb7f824d4
#4 0xb7f8e544 in GetThreadHash (keyPtr=0xb7fc4e18) at /usr/src/tcl8.5.8/unix/../generic/tclUtil.c:2888
tablePtrPtr = 0x0
#5 0xb7f8e902 in TclGetProcessGlobalValue (pgvPtr=0xb7fc4e00) at /usr/src/tcl8.5.8/unix/../generic/tclUtil.c:3065
value = 0x0
cacheMap = 0x1
hPtr = 0xb7ea9fb0
epoch = 0
#6 0xb7f8ea77 in TclGetObjNameOfExecutable () at /usr/src/tcl8.5.8/unix/../generic/tclUtil.c:3156
No locals.
#7 0xb7f8ea94 in Tcl_GetNameOfExecutable () at /usr/src/tcl8.5.8/unix/../generic/tclUtil.c:3185
numBytes = 1
bytes = 0xb7f8ea7d "U\211\345S\203\354$\350.\237\362\377\201\303s\335\002"
#8 0x08048562 in main (argc=1, argv=0xbffffa34) at test.c:8
name = 0xb7e9eff4 "|-\024"