Return-Path: Delivered-To: apmail-harmony-commits-archive@www.apache.org Received: (qmail 3146 invoked from network); 23 Apr 2007 08:48:37 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 23 Apr 2007 08:48:37 -0000 Received: (qmail 84241 invoked by uid 500); 23 Apr 2007 08:48:43 -0000 Delivered-To: apmail-harmony-commits-archive@harmony.apache.org Received: (qmail 84216 invoked by uid 500); 23 Apr 2007 08:48:43 -0000 Mailing-List: contact commits-help@harmony.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@harmony.apache.org Delivered-To: mailing list commits@harmony.apache.org Received: (qmail 84182 invoked by uid 99); 23 Apr 2007 08:48:43 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 23 Apr 2007 01:48:43 -0700 X-ASF-Spam-Status: No, hits=-100.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO brutus.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 23 Apr 2007 01:48:36 -0700 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 10DE9714080 for ; Mon, 23 Apr 2007 01:48:16 -0700 (PDT) Message-ID: <15264756.1177318096067.JavaMail.jira@brutus> Date: Mon, 23 Apr 2007 01:48:16 -0700 (PDT) From: "Eugene S. Ostrovsky (JIRA)" To: commits@harmony.apache.org Subject: [jira] Updated: (HARMONY-3532) [drlvm][jvmti] wrong METHOD_EXIT events are generated before VM_DEATH In-Reply-To: <16414036.1175259265322.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/HARMONY-3532?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Eugene S. Ostrovsky updated HARMONY-3532: ----------------------------------------- Attachment: H3532-local-handles-copying.patch Added patch: H3532-local-handles-copying.patch fixes bug with local handle creation. Both patches should be applied. > [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 > 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= > 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.