Re: Strange cjson bug doesn't occur in Pydb
- From: kj <socyl@xxxxxxxxxxxxxxxxx>
- Date: Thu, 12 Jun 2008 14:59:18 +0000 (UTC)
[Note: I changed the subject line to make it more informative.]
In <6bciubF3asvq1U1@xxxxxxxxxxxxxxxxx> "Diez B. Roggisch" <deets@xxxxxxxxxxxxx> writes:
kj wrote:
In <6bb01lF38u72tU1@xxxxxxxxxxxxxxxxx> "Diez B. Roggisch"
<deets@xxxxxxxxxxxxx> writes:
kj schrieb:
I'm running into a strange seg fault with the module cjson. The
strange part is that it does not occur when I run the code under
Emacs' Pydb.
Here's an example:
import sys, cjson
d1 = {'a': 1, 'b': 2, 'c': 3}
print sys.version
j1 = cjson.encode(d1)
print j1 # should print the string '{"a": 1, "c": 3, "b": 2}'
The code above runs fine under Pydb, but segfaults at the call to
cjson.encode when I run it from the command line in a standard
Linux shell interaction. In the printed version strings are
identical.
I figure this must be a bug in cjson. I'd love to find a workaround
for it, and hope that this strange difference between Pydb and the
shell command line may be a clue to that.
Any thoughts?
Are you sure you actually run the same interpreter in emacs as you do on
the commandline?
No, I'm not. All I know is that both Emacs and the commandline
are running on the same machine, and that the version string that
the program prints is the same in both conditions. How can I verify
that that the same interpreter is running in both cases?
By e.g.
import sys
print sys.prefix
Additionally, you should compare what
sys.path
contains and if it's the same - otherwise it might be that cjson is picked
up from somewhere else.
If all that's the case, I'd invoke python through gdb and see where the
segfault happens.
Thanks for that suggestion. I did so, and this is gdb's output at
the time failure:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 47622454277872 (LWP 14555)]
encode_object (object=0x777390) at cjson.c:946
946 temp = PyList_GET_ITEM(pieces, 0);
In my experience, however, the root cause of a segfault is often
quite far away in the code from where it is triggered...
Anyway, thanks for your help.
kynn
--
NOTE: In my address everything before the first period is backwards;
and the last period, and everything after it, should be discarded.
.
- References:
- Strange bug doesn't occur in Pydb
- From: kj
- Re: Strange bug doesn't occur in Pydb
- From: Diez B. Roggisch
- Re: Strange bug doesn't occur in Pydb
- From: kj
- Re: Strange bug doesn't occur in Pydb
- From: Diez B. Roggisch
- Strange bug doesn't occur in Pydb
- Prev by Date: Making wxPython a standard module?
- Next by Date: Plotting Graph Functions using Gnuplot
- Previous by thread: Re: Strange bug doesn't occur in Pydb
- Next by thread: how to indent/dedent a region in emacs?
- Index(es):
Relevant Pages
|
|