[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