Am Mittwoch, 5. Januar 2005 20:09 schrieb Jacek Caban:
> I know only that it makes widl work for Dan Kegel and Stefan Leichter,
> as they
> reported, but, as often with memory overflow, it can be just a consident.
> Now I see that the bug is not here. The best way to find the bug would be
> to debug widl with the malloc debug library, but as it doesn't crash on my
> box, I'm not able to do it.
>
> Thanks,
> Jacek
Hello,
here is a another backtrace of widl with libefence. The crash is from
wine-20041227-1114. The patch applied to wine before this snapshot raises the
problem. The patch was:
Modified files:
tools/widl : widl.c
Log message:
Vincent B�ron <[EMAIL PROTECTED]>
Generate only wanted files.
Patch: http://cvs.winehq.org/patch.py?id=15042
Bye
Stefan
GNU gdb 5.3.92
Copyright 2003 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i586-suse-linux"...
Core was generated by `../tools/widl/widl -I../../wipe/include -I. -I../../wipe/include -I../include -'.
Program terminated with signal 6, Aborted.
Reading symbols from /usr/lib/libefence.so.0.0...done.
Loaded symbols for /usr/lib/libefence.so.0.0
Reading symbols from /lib/i686/libc.so.6...done.
Loaded symbols for /lib/i686/libc.so.6
Reading symbols from /lib/ld-linux.so.2...done.
Loaded symbols for /lib/ld-linux.so.2
#0 0x40056b71 in kill () from /lib/i686/libc.so.6
(gdb) bt
#0 0x40056b71 in kill () from /lib/i686/libc.so.6
#1 0x400568f5 in raise () from /lib/i686/libc.so.6
#2 0x40057e8c in abort () from /lib/i686/libc.so.6
#3 0x0804dc9c in segvhandler (sig=1075158752) at ../../../wipe/tools/widl/widl.c:298
#4 0x40159d80 in _IO_wide_data_1 () from /lib/i686/libc.so.6
#5 0x40159ee0 in _IO_wide_data_2 () from /lib/i686/libc.so.6
#6 0x0805e880 in version_string ()
#7 0x00000001 in ?? ()
#8 0xbfffef80 in ?? ()
#9 <signal handler called>
#10 0x400a6243 in strlen () from /lib/i686/libc.so.6
#11 0x08052641 in pp_xstrdup (str=0x4022bfe0 "../../wipe/include/baset�_/@�\177\037@" <Address 0x4022c000 out of bounds>)
at ../../../wipe/libs/wpp/preproc.c:108
#12 0x08052928 in pp_add_define (def=0x404f8ff4 "__WIDL__", text=0x404f6ffc "") at ../../../wipe/libs/wpp/preproc.c:231
#13 0x08053197 in add_cmdline_defines () at ../../../wipe/libs/wpp/wpp.c:48
#14 0x080533f5 in wpp_parse (input=0x404ecfe0 "../../wipe/include/guiddef.h", output=0x403c8e94)
at ../../../wipe/libs/wpp/wpp.c:147
#15 0x0805350e in wpp_parse_temp (input=0x404ecfe0 "../../wipe/include/guiddef.h", output_base=0x0, output_name=0x80a6c1c)
at ../../../wipe/libs/wpp/wpp.c:196
#16 0x08052450 in do_import (fname=0x4020bff4 "guiddef.h") at ../../../wipe/tools/widl/parser.l:414
#17 0x0804f2c1 in yyparse () at ../../../wipe/tools/widl/parser.y:256
#18 0x0804db40 in main (argc=9, argv=0xbffff564) at ../../../wipe/tools/widl/widl.c:266
(gdb) frame 11
#11 0x08052641 in pp_xstrdup (str=0x4022bfe0 "../../wipe/include/baset�_/@�\177\037@" <Address 0x4022c000 out of bounds>)
at ../../../wipe/libs/wpp/preproc.c:108
108 s = pp_xmalloc(strlen(str)+1);
(gdb) frame 12
#12 0x08052928 in pp_add_define (def=0x404f8ff4 "__WIDL__", text=0x404f6ffc "") at ../../../wipe/libs/wpp/preproc.c:231
231 ppp->filename = pp_xstrdup(pp_status.input ? pp_status.input : "<internal or cmdline>");
(gdb) frame 12 3
#13 0x08053197 in add_cmdline_defines () at ../../../wipe/libs/wpp/wpp.c:48
48 if (def->value) pp_add_define( pp_xstrdup(def->name), pp_xstrdup(def->value) );
(gdb) frame 13 5
#15 0x0805350e in wpp_parse_temp (input=0x404ecfe0 "../../wipe/include/guiddef.h", output_base=0x0, output_name=0x80a6c1c)
at ../../../wipe/libs/wpp/wpp.c:196
196 ret = wpp_parse( input, output );
(gdb) frame 15 6
#16 0x08052450 in do_import (fname=0x4020bff4 "guiddef.h") at ../../../wipe/tools/widl/parser.l:414
414 ret = wpp_parse_temp( path, NULL, &temp_name );
(gdb) quit