# HG changeset patch # User Sebastien Decugis # Date 1370504978 -28800 # Node ID 42d3fd71e7ea577f3996bcfb9f8087edcbf0da14 # Parent cc96a4dfb3d161ee874c2db9ffa937c4e64882f4 dbg_interactive is segfaulting when exited with Ctrl-C, not sure how to fix it... diff -r cc96a4dfb3d1 -r 42d3fd71e7ea extensions/dbg_interactive/dbg_interactive.c --- a/extensions/dbg_interactive/dbg_interactive.c Thu Jun 06 11:25:23 2013 +0800 +++ b/extensions/dbg_interactive/dbg_interactive.c Thu Jun 06 15:49:38 2013 +0800 @@ -55,6 +55,7 @@ static void * myinterp (void * arg) { char * dum[3] = { "", arg, NULL }; + TRACE_ENTRY("%p", arg); fd_log_threadname ( "fDpy" ); @@ -70,10 +71,12 @@ goto end; } printf("Starting interactive python interpreter [experimental].\n"); + printf("Please use Ctrl-D to exit.\n"); printf("Example syntax:\n"); printf(" >>> print cvar.fd_g_config.cnf_diamid\n"); printf(" '%s'\n", fd_g_config->cnf_diamid); Py_Main(1, dum); + printf("Python interpreter has exited...\n"); } end: @@ -92,7 +95,7 @@ int mustfree = 0; TRACE_ENTRY("%p", conffile); - Py_Initialize(); + Py_InitializeEx(0); WRAPPER_INIT; @@ -124,11 +127,11 @@ void fd_ext_fini(void) { TRACE_ENTRY(); - - CHECK_FCT_DO(fd_thr_term(&pyinterp), ); + void * ret; /* Cleanup the python interpreter */ Py_Finalize(); + pthread_join(pyinterp, &ret); return ; } diff -r cc96a4dfb3d1 -r 42d3fd71e7ea extensions/dbg_interactive/dbg_interactive.i --- a/extensions/dbg_interactive/dbg_interactive.i Thu Jun 06 11:25:23 2013 +0800 +++ b/extensions/dbg_interactive/dbg_interactive.i Thu Jun 06 15:49:38 2013 +0800 @@ -122,7 +122,7 @@ } /* Case of the fd_*_dump functions */ -%typemap(in,noblock=1,numinputs=0) (char ** buf, size_t *len, size_t *offset) ($*1_ltype temp = NULL, $*2_ltype tempn) { +%typemap(in,noblock=1,numinputs=0) (char ** buf, size_t *len, size_t *offset) ($*1_ltype temp = NULL, $*2_ltype tempn = 0) { $1 = &temp; $2 = &tempn; $3 = NULL; } %typemap(freearg,match="in") (char ** buf, size_t *len, size_t *offset) "";