[Bug: 21.5-b28] Crash after server password prompt(ERC)
FKtPp
m_pupil at yahoo.com.cn
Tue Nov 6 07:06:32 EST 2007
On Tue, Nov 06, 2007 at 03:58:55AM +0900, Stephen J. Turnbull wrote:
> FKtPp writes:
>
> > > If you have the core file, start gdb /path/to/xemacs, then source
> > > .gdbinit,
> >
> > It seemed that, I don't have `pobj' nor `ldp' command defined. Is that a gdb
> > standard command or you defined for self needs? How to define it?
> > What does it do?
>
> "source .gdbinit" is the key. It lives in the XEmacs sources src/
> subdirectory next to the xemacs binary.
>
> pobj and ldp are two commands that take a C pointer to a Lisp_Object
> and print it out in various ways. pobj shows the relationship of the
> C struct to the Lisp object more clearly, while ldp actually uses the
> Lisp engine's printer to show you what you would see if you typed M-:
> obj RET in XEmacs. These user commands are defined in .gdbinit.
>
> If you start gdb from the same directory where .gdbinit is, gdb will
> read it automatically. (Thus "cd /path/to/xemacsstuff; gdb xemacs"
> has some advantages over "gdb /path/to/xemacsstuff/xemacs".)
Thanks for your time and patient, I've know how to do it now. And this is
the result:
--8<---------------cut here---------------start------------->8---
Fatal error: assertion failed, file print.c, line 1522, ABORT()
Program received signal SIGABRT, Aborted.
[Switching to Thread 0x2b8774f6a1e0 (LWP 13108)]
0x00002b8773f636a5 in raise () from /lib/libc.so.6
(gdb) up 9
#9 0x0000000000470d81 in execute_optimized_program (
program=0x131ee60 "~\033~\032\r~\034~\021~\211\020\026\035~\026\036\016\037~\004~ \210~ \210\r\026 ~~!\210~~\f~a~\037~\rA@!~\025~\rA at GU~\r~\rA@~H!~\004~\035~\032\f~a~\004~\022\f~s~\004~\n\f~a~\004~\002~\"\210~\r~\"\210~ ~\v~~\016!\"\210~~!\210+~\207!", stack_depth=6, constants_data=0xb133d0)
at bytecode.c:862
(gdb) pobj constants_data
Unknown Lisp Object type
$1 = (Lisp_Object *) 0xb133d0
(gdb) down 1
#8 0x00000000004b5d16 in Ffuncall (nargs=3, args=0x7fff38e20d18)
at eval.c:3928
(gdb) pobj args[0]
$2 = (struct Lisp_Symbol *) 0x9b1af0
$3 = {lheader = {type = 4, mark = 0, c_readonly = 0, lisp_readonly = 0,
uid = 3897}, next = 0x0, name = 12653648, value = 9672544,
function = 10266152, plist = 10223248}
Symbol name: display-error
(gdb) pobj args[1]
$4 = (struct Lisp_Cons *) 0x11baa78
$5 = {lheader = {type = 6, mark = 0, c_readonly = 0, lisp_readonly = 0,
uid = 390533}, car_ = 10034704, cdr_ = 18593336}
(gdb) pobj args[2]
$6 = (struct Lisp_Symbol *) 0x9bf8c0
$7 = {lheader = {type = 4, mark = 0, c_readonly = 0, lisp_readonly = 0,
uid = 264}, next = 0x0, name = 12705424, value = 10221760,
function = 9672544, plist = 10223248}
Symbol name: t
(gdb) ldp args[0]
Lisp => display-error
(gdb) ldp args[1]
(invalid-function #<EMACS BUG: freed lrecord object 0x111dd60 Save your buffers immediately and please report this bug>)
(gdb) ldp args[2]
Lisp => t
(gdb)
--8<---------------cut here---------------start------------->8---
>
> > I've done that, so what next? I can tempraryly using gedit as my editor.
>
> Just start another instance of XEmacs. In fact, if you're into heavy
> debug and fix mode, it often makes sense to have a cycle like "make;
> cd src; ./xemacs" then in XEmacs use M-x gdb to start gdb-mode which
> gives you a somewhat useful toolbar and multiple windows on debugger
> data. (Of course you have to be careful to avoid tickling the crash
> you're debuging in the parent xemacs! Or you could use a stable
> version that doesn't crash.)
>
Yes, I like this :p But I still have to use some other editor because
of the multi-gnuserv confusing.
--
ENCODING
More information about the XEmacs-Beta
mailing list