On Thu, Dec 15, 2005 at 09:47:35AM -0500, Ryan Daly wrote:
> Dan Espen said:
> 
> > Post a backtrace:
> >
> > gdb `FvwmForm` core.5481
> > then type 'where',
> > then 'quit'
> 
> Here you go (you just wanted the "where" output, correct?):
> 
> (gdb) where
> #0  0x435cf410 in _int_malloc () from /lib/tls/libc.so.6
> #1  0x435d0f81 in malloc () from /lib/tls/libc.so.6
> #2  0x08061241 in safemalloc (length=1130971124) at safemalloc.c:44
> #3  0x0805ceb0 in CombineChars (str_visual=0x80b6830 "Cancel", len=6,
>     comb_chars=0xbfbd187c, l_to_v=0x0) at CombineChars.c:2074

The line of code that fails is this:

  safemalloc((comp_str_len + 1) * sizeof(superimpose_char_t));

With (comp_str_len + 1) * sizeof(...) = 1130971124 which is *way*
too big for a 6 character string ("Cancel").

Can you somehow debug this by putting fprints in the CombineChars
function that shows details about all the calculations with the
str_len and comp_str_len variables?

> #4  0x08052077 in FlocaleEncodeString (dpy=0x807e6a8, flf=0x809ed28,
>     str=0x80833e8 "Cancel", do_free=0xbfbd1874, len=6, nl=0xbfbd1878,
> is_rtl=0x0,
>     comb_chars=0xbfbd187c, l_to_v=0x0) at Flocale.c:455
> #5  0x08052271 in FlocaleEncodeWinString (dpy=0x807e6a8, flf=0x809ed28,
> fws=0x809ed80,
>     do_free=0xbfbd1874, len=0xbfbd1878, comb_chars=0xbfbd187c, l_to_v=0x0)
>     at Flocale.c:562
> #6  0x080540e7 in FlocaleDrawString (dpy=0x807e6a8, flf=0x809ed28,
> fws=0x809ed80, flags=Variable "flags" is not available.
> )
>     at Flocale.c:1833
> #7  0x0804e122 in RedrawItem (item=0x80b5f00, click=0, pev=0x8075ce0) at
> FvwmForm.c:1921
> #8  0x08050b69 in ReadXServer () at ReadXServer.c:440
> #9  0x0804faa0 in main (argc=7, argv=0xbfbd2044) at FvwmForm.c:2501
> #10 0x43581e23 in __libc_start_main () from /lib/tls/libc.so.6
> #11 0x0804bc05 in _start ()
> (gdb) quit


Ciao

Dominik ^_^  ^_^

 --
Dominik Vogt, [EMAIL PROTECTED]

Attachment: signature.asc
Description: Digital signature

Reply via email to