Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 26 Feb 2009 17:28:33 -0500
From:      Kurt Miller <kurt@intricatesoftware.com>
To:        Swamy Venkataramanappa <Swamy.Venkataramanappa@Sun.COM>
Cc:        Brian Gardner <brian@experts-exchange.com>, bsd-port-dev@openjdk.java.net, freebsd-java@freebsd.org
Subject:   Re: gdb and java
Message-ID:  <49A71791.4030601@intricatesoftware.com>
In-Reply-To: <49A7068D.7050001@sun.com>
References:  <49A6F84E.1080504@experts-exchange.com> <49A6FD5C.3070107@sun.com>	<49A7017C.3020302@experts-exchange.com> <49A7068D.7050001@sun.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Yes, that is the problem. Upon initial execution the java launcher
checks to see if the LD_LIBRARY_PATH is setup correctly. If not it
adjusts the env and execv's itself again. gdb can't follow beyond
the execv.

Setting the LD_LIBRARY_PATH to match what the launcher wants will
avoid the execv and allow gdb to work as expected.

-Kurt

Swamy Venkataramanappa wrote:
> Probably library path is not set correctly.  So try this trick.
> 
> public class PrintLibraryPath {
>    public static void main(String[] args) {
>       System.out.println(System.getProperty("java.library.path"));
>    }
> }
> 
> 
> env LD_LIBRARY_PATH=`java PrintLibraryPath` gdb java ..
> 
> -swamy
> 
> Brian Gardner wrote:
>> Thanks Swamy,
>> Same thing happens using java directly. 
>>
>> Swamy Venkataramanappa wrote:
>>   
>>> jmap is actually a java program. jmap executable is simple launcher 
>>> just like a java launcher.
>>> It launches java program and runs JMap.class from sa-jdi.jar or runs 
>>> attach on demand
>>> code and attaches to the running jvm.  SA based jmap can be run like this
>>>
>>> java -classpath <jdkhome>/sa-jdi.jar  sun.jvm.hotspot.tools.JMap  
>>> -finalizerinfo <pid>
>>>
>>> -Swamy
>>>
>>> Brian Gardner wrote:
>>>     
>>>> I've had success in debugging java using jdb, however this doesn't 
>>>> seem to support native debugging.  I'd like to use gdb but this 
>>>> doesn't work with (the error is bellow).  Currently I'm printing to 
>>>> stderr from native code but this is less than ideal and time 
>>>> consuming, any ideas?
>>>>
>>>> # gdb jmap
>>>> (gdb) run -finalizerinfo 118
>>>> Starting program: 
>>>> /usr/home/brian/openjdk6/freshv2.2/bsd-port6.modified/build/bsd-amd64/j2sdk-image/bin/jmap 
>>>> -finalizerinfo 118
>>>> (no debugging symbols found)...(no debugging symbols found)...[New 
>>>> LWP 104363]
>>>> (no debugging symbols found)...(no debugging symbols found)...[New 
>>>> Thread 0x800b01120 (LWP 104363)]
>>>> [New LWP 104363]
>>>>
>>>> Program received signal SIGTRAP, Trace/breakpoint trap.
>>>> [Switching to LWP 104363]
>>>> Cannot remove breakpoints because program is no longer writable.
>>>> It might be running in another process.
>>>> Further execution is probably impossible.
>>>> 0x000000080050d360 in ?? () from /libexec/ld-elf.so.1
>>>> (gdb)
>>>>
>>>>
>>>>
>>>>   
>>>>       
>>>     
>>   
> 
> 




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?49A71791.4030601>