You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Gregory Shimansky (JIRA)" <ji...@apache.org> on 2007/04/23 10:52:15 UTC

[jira] Assigned: (HARMONY-3532) [drlvm][jvmti] wrong METHOD_EXIT events are generated before VM_DEATH

     [ https://issues.apache.org/jira/browse/HARMONY-3532?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gregory Shimansky reassigned HARMONY-3532:
------------------------------------------

    Assignee: Gregory Shimansky

> [drlvm][jvmti] wrong METHOD_EXIT events are generated before VM_DEATH
> ---------------------------------------------------------------------
>
>                 Key: HARMONY-3532
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3532
>             Project: Harmony
>          Issue Type: Bug
>          Components: App-Oriented Bug Reports, DRLVM
>         Environment: Windows/x86, Linux/x86, Harmony-jdk-r524025, Eclipse 3.2
>            Reporter: Ivan Popov
>         Assigned To: Gregory Shimansky
>         Attachments: H3532-getCurrentThread-fix.patch, H3532-local-handles-copying.patch
>
>
> When debugging HelloWorld application in Eclipse debugger including stopping at method enter/exit, I noticed error message from JDWP agent printed to Eclipse console:
> Hello
>  INFO: [RequestManager.cpp:1123] JDWP error in METHOD_EXIT: AgentException [10]
>  INFO: [RequestManager.cpp:1123] JDWP error in METHOD_EXIT: AgentException [10]
>  INFO: [RequestManager.cpp:1123] JDWP error in METHOD_EXIT: AgentException [10]
> <...>
> The problem is that JVMTI generates a seria of extra METHOD_EXIT events before VM_DEATH event. 
> I added trace messages to JDWP agent and got the following data for these events:
>  INFO: [RequestManager.cpp:1123] JDWP error in METHOD_EXIT: AgentException [10]
>  GetThreadInfo(): err=10, jthread=029EB710, name=(null)
>  GetMethodName(): err=0, jmethodID=01444688, name=<init>
>  GetMethodDeclaringClass(): err=0, jclass=0012EECC
>  GetClassSignature(): err=0, signature=Ljava/lang/Object;
>  GetFrameLocation(): err=10, jlocation=0
> It seems that METHOD_EXIT events are generated for constructor of j.l.Object in unknown thread. Attempts to get thread info and stack frames lead to JVMTI error 10 (JVMTI_ERROR_INVALID_THREAD).
> To reproduce this bug, run Eclipse over Harmony JDK and create Java project with the following class:
> public class HelloWorld {
> 	public static void main(String[] args) {
> 		printHello();
> 	}
> 	public static void printHello() {
> 		System.out.println("Hello");
> 	}
> }
> Then switch to Debug perspective and set Method breakpoint:
>   1. Set cursor to method printHello()
>   2. Click Run->Toggle Method Breakpoint
>   3. Go to Breakpoints view, right click on breakpoint to open popup menu
>   4. Check 'Exit' item to enable stopping at method exit
>  
> Run application in debug mode:
>   1. Click Run->Debug As->Java Application
>   2. After stopped on entry for method printHello(), click 'Resume'
>   3. After stopped on exit for method printHello(), click 'Resume'
>  
> When application finished, see error messages in console view.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.