[Pythonmac-SIG] readline: where and how installed?
zpincus at stanford.edu
Thu Apr 13 05:52:25 CEST 2006
Well, not to keep this thread going on any more than necessary --
though we do still need to hear from Ronald about what version of
readline was used for the Universal MacPython -- but I have a comment.
> I would think that most gdb users already know how to cross an
> execve, but maybe I'm wrong.
I would disagree. You can amass a fairly decent knowledge of gdb
without ever crossing an execve. People doing systems programming
would of course know all about this, but people who develop and debug
pretty exclusively single-process, single-task userland stuff could
spend a whole lot of time in gdb without ever having to deal with
forking, exec, or any of that.
And since normal pythons don't execve on launch, it's even more
confusing because nobody ever expects the spanish execve. Imagine
you're someone like me -- a competent (I hope) graduate student who
has been programming for over six years in C, C++, python and other
crappier languages, but who has never done any systems work. One day
'gdb python' -- useful for tracking down errors in some little
extension module you've made -- reports a SIGTRAP in
__dyld__dyld_start. Googling for 'GDB SIGTRAP' or 'SIGRAP' yields
almost nothing of any value as to understanding what's going on.
It's a fun exercise to try to see if you could figure out what the
"problem" with your program was if all you had to go on was:
> Program received signal SIGTRAP, Trace/breakpoint trap.
> 0x8fe0100c in __dyld__dyld_start ()
without prior knowledge that (a) SIGTRAP is what happens when an
execve happens and the program is being ptrace'd, or (b) that your
copy of python is even doing an execve at all, and that might have
implications for debugging.
All I'm saying is that it might be a good idea to put a few lines in
the README about the execve deal, and its implications for things
like debugging. Because otherwise it could get pretty frustrating for
some folk pretty fast.
More information about the Pythonmac-SIG