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

      Backports

        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: