[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: SIGSEGV in X export display.
From: |
Michaël Cadilhac |
Subject: |
Re: SIGSEGV in X export display. |
Date: |
Thu, 02 Nov 2006 16:47:33 +0100 |
User-agent: |
Gnus/5.110006 (No Gnus v0.6) Emacs/22.0.90 (gnu/linux) |
Richard Stallman <address@hidden> writes:
> I suggest you debug the next such crash by studying the structure
> of byte_stack_list and what it points to. Try to identify the
> specific object that is clobbered, and how it is wrong.
> (gdb) p *stack
> $6 = {pc = 0x8375629 "", top = 0x6610, bottom = 0xbff3c988,
> byte_string = 135894490, byte_string_start = 0x8db940c "@\223 \b \b
> \210 \bD\223 \b8", constants = 1, next = 0xbff3c9a4}
>
> If it was reached through a clobbered pointer, what is the last
> element that is real? Can you find that in a stack frame in your backtrace?
> What Lisp function is that frame running?
Really, I can't help. Those crashes append from time to time and are
always different. My knowledge of this part of the C code is not at
all enough.
Let's have a look at the present crash :
void
mark_byte_stack ()
{
struct byte_stack *stack;
Lisp_Object *obj;
for (stack = byte_stack_list; stack; stack = stack->next)
{
/* If STACK->top is null here, this means there's an opcode in
Fbyte_code that wasn't expected to GC, but did. To find out
which opcode this is, record the value of `stack', and walk
up the stack in a debugger, stopping in frames of Fbyte_code.
The culprit is found in the frame of Fbyte_code where the
address of its local variable `stack' is equal to the
recorded value of `stack' here. */
eassert (stack->top);
for (obj = stack->bottom; obj <= stack->top; ++obj)
===>Crash mark_object (*obj);
mark_object (stack->byte_string);
mark_object (stack->constants);
}
}
(gdb) p obj
$15 = (Lisp_Object *) 0x0
(gdb) p stack
$12 = {
pc = 0x0,
top = 0x0,
bottom = 0x0,
byte_string = 0,
byte_string_start = 0x0,
constants = 0,
next = 0xffffffff
}
And stack is *byte_stack_list->next->next->next->next->next->next.
Wow, I'm sorry but I don't have any idea on HOW (I mean what are the
command to actually type) to debug that.
Do you have any... sequence of command that I can use to help ?
--
/!\ My mail address changed, please update your files accordingly.
| Michaël `Micha' Cadilhac | Le copillage-collage |
| Epita/LRDE Promo 2007 | tue le programmeur. |
| http://michael.cadilhac.name | -- Dictons LRDE |
`-- - JID: address@hidden --' - --'
pgpkE91L2cE_2.pgp
Description: PGP signature
- Re: SIGSEGV in X export display.,
Michaël Cadilhac <=