From: Eric B. <eb...@co...> - 2006-07-03 15:02:20
|
On Mon, Jul 03, 2006 at 04:26:56PM +0200, Magnus Lie Hetland wrote: > > On Jul 3, 2006, at 16:07, Magnus Lie Hetland wrote: > > > Hi! > > > > I'm experiencing some memory problems (a Bus Error in OS X) with a C+ > > + module wrapped for Python, with a unit test writtein in Python. > > I found the following article, which seems quite helpful: > > http://wingware.com/doc/howtos/debugging-extension-modules-on-linux You can also directly use gdb like this: Modify the unit test code by adding this after all the imports: import os print os.getpid() raw_input('Attach and press enter') Then run the unit test. When you see the pid and 'Attach and press enter', fire up gdb in another window. I generally run it under emacs. You want to debug /usr/bin/python In gdb give the "attach <pid>" command, where pid is what was printed before the unittest stopped. gdb will now print out a list of all the shared libraries that have been loaded into python, including your extension. Set breakpoints as desired. Tell gdb to continue ("c") Now tell the unit test to continue by pressing enter. If it runs and blows up, use the "bt" backtrace command in gdb. This will give you a stack trace. If you're using multiple threads take a look at the "info threads" command. Eric |