Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-4771635

JDWP: ThreadReference.popFrame() hangs trying to pop a frame of invoked method

    Details

    • Subcomponent:
    • Resolved In Build:
      b05
    • CPU:
      generic, sparc
    • OS:
      generic, solaris_9

      Description

      Name: vpR10197 Date: 10/30/2002


      ------------------------------------------------------------------------------
      Test : nsk/jdi/Scenarios/invokeMethod/popframes001
      Test Base : testbase_nsk
      VM : ServerVM, ClientVM
      Mode : comp, int, mixed
      Platform (s) : solx86, linux, solsparc, win
      OS : 5.8, RH7.2, NT/2000
      JDK : 1.4.2-b03, hopper-rc, merlin-rc
      ------------------------------------------------------------------------------
      Debuggee's part of the test contains a tested class (class B) and
      debugger exercises method runIt() of this class by the following steps:
      1. On ClassPrepareEvent of class B, MethodExitRequest is created and
         debugger waits MethodExitEvent for <clinit> to be shure the static
         members of class B have been initialized
      2. After getting MethodExitEvent for <clinit>,
           - debugger creates MethodEntryRequest
           - invokes the tested method (method "runIt") by calling
             com.sun.jdi.ClassType.invokeMethod().
         This invoking occurs in special thread of debugger's part so that
         debugger can process the events of the target VM.
      3. When getting MethodEntryEvent from the invoked method (method "runIt"),
         debugger tries to pop current frame (with 0 index).

      Result of the last step is that debugger hangs.

      The test will be available in testbase_nsk.v142r18

      Steps to reproduce
      ==================
      1. cd /net/sqesvr.sfbay/export/vsn/GammaBase/Bugs/<BugID>
      2. sh doit.sh $JAVA_HOME

      TEST BEGINS
      ===========

      event ===>>> VMStartEvent in thread main

      resuming...

      event ===>>> ClassPrepareEvent in thread main

      creating MethodExitRequest for the "nsk.jdi.Scenarios.invokeMethod.popframes001b"
      class

      resuming...

      event ===>>> ###@###.###rames001b:44 in
      thread main
      MethodExitEvent:: method name : <clinit>
      MethodExitEvent:: is it <clinit>: true

      MethodExitEvent:: creating MethodEntryRequest for the
      "nsk.jdi.Scenarios.invokeMethod.popframes001b" class

      invokingMethodThread:: thread created
      invokingMethodThread:: invoking method :"runIt"
      invokingMethodThread:: -------------------------------

      event ===>>> ###@###.###rames001b:51 in
      thread main
      MethodEntryEvent:: method name: runIt

      Active frames:
              0. nsk.jdi.Scenarios.invokeMethod.popframes001b:51 method: runIt
              1. nsk.jdi.Scenarios.invokeMethod.popframes001b:43 method: <clinit>
              2. nsk.jdi.Scenarios.invokeMethod.popframes001a:23 method: main

      resetting frame of nsk.jdi.Scenarios.invokeMethod.popframes001b.runIt()

      < debugger is hanging >

      ======================================================================

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                mtobiass Mattias Tobiasson (Inactive)
                Reporter:
                vitpsunw Vitp Vitp (Inactive)
              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:
                  Imported:
                  Indexed: