[re] Java executables can abort trying to access a null pointer in a leaf function
David Daney
ddaney@avtrex.com
Thu Feb 2 17:34:00 GMT 2006
tsuraan wrote:
>>Just run the thing under GDB, Set most signals (other than SIGABRT) to
>>noprint nostop pass. Then print the trace when gdb stops in the abort.
>
>
> Invoking gdb with
>
> LD_LIBRARY_PATH=/opt/gcc-4.1/lib gdb ./nullpointer
>
> When I run I get
>
> Starting program: /home/tsuraan/java/abort/nullpointer
> Cannot find thread 2: Thread ID=1, generic error
>
> My gdb version is
>
> GNU gdb 6.1.1 [FreeBSD]
> Copyright 2004 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 "i386-marcel-freebsd".
>
> A backtrace of the program that showed me this bug (a python program
> using PyLucene) is:
>
> #0 0x2822f31b in pthread_testcancel () from /usr/lib/libpthread.so.1
> #1 0x28220145 in sigaction () from /usr/lib/libpthread.so.1
> #2 0x2821a1dd in pthread_kill () from /usr/lib/libpthread.so.1
> #3 0x28219bac in raise () from /usr/lib/libpthread.so.1
> #4 0x282eac1b in abort () from /lib/libc.so.5
> #5 0x28e5800c in _Jv_Throw (value=0x8c06ac8)
> at ../../../gcc-4.1-20051029/libjava/exception.cc:111
^^^^^^^^^^^^^^^^^^^^
Yeah, I've seen that before.
As aph said it is likley bad DWARF unwinding data.
Someone will need the assembly and/or object file for a small test case
to examine the DWARF frame data.
David Daney
More information about the Java
mailing list