But that does not seem to work correctly: Initializing jdb ... > stop in JdbMethodExitTest.bkpt() Deferring breakpoint JdbMethodExitTest.bkpt(). It will be set after the class is loaded. > run run JdbMethodExitTest Set uncaught java.lang.Throwable Set deferred uncaught java.lang.Throwable > VM Started: Set deferred breakpoint JdbMethodExitTest.bkpt()
Breakpoint hit: "thread=main", JdbMethodExitTest.bkpt(), line=84 bci=0 84 int i = 0; //@1 breakpoint main[1] threads Group system: (java.lang.ref.Reference$ReferenceHandler)0x17c Reference Handler cond. waiting (java.lang.ref.Finalizer$FinalizerThread)0x17b Finalizer cond. waiting (java.lang.Thread)0x17a Signal Dispatcher running Group main: (java.lang.Thread)0x1 main running (at breakpoint) main[1] thread 0x17a Signal Dispatcher[1] If the thread number was part of the prompt, I would have expected that last line to say "Signal Dispatcher[17a]". /Staffan On 30 okt 2013, at 13:10, Daniel D. Daugherty <daniel.daughe...@oracle.com> wrote: > The current thread number is part of the jdb prompt. > So something like this: > > $ jdb Hello > Initializing jdb ... > > stop in Hello.main > Deferring breakpoint Hello.main. > It will be set after the class is loaded. > > run > run Hello > Set uncaught java.lang.Throwable > Set deferred uncaught java.lang.Throwable > > > VM Started: Set deferred breakpoint Hello.main > > Breakpoint hit: "thread=main", Hello.main(), line=3 bci=0 > 3 System.out.println("Hello World!"); > > main[1] > > where you feed these cmds to jdb: > > stop in Hello.main > run > > and your script checks for > > Breakpoint hit: "thread=main" > > and then pulls the number out of the prompt that follows: > > main[1] > > Dan > > > > On 10/30/13 7:10 AM, Staffan Larsen wrote: >> I tried, that, but couldn't find what the jdb command for getting the >> current thread is. Anyone? >> >> /Staffan >> >> On 30 okt 2013, at 11:17, Mikael Auno <mikael.a...@oracle.com> wrote: >> >>> On 2013-10-29 15:41, Staffan Larsen wrote: >>>> This test fails if there are background threads that run while the >>>> test is running. I've modified the test to use the "trace" commands >>>> in jdb with the extra thread parameter. I have assumed that the main >>>> thread has thread id 1. "trace" with thread id behaves a little bit >>>> different so a couple of extra "cont" were needed. >>>> >>>> webrev: http://cr.openjdk.java.net/~sla/7145419/webrev.00/ >>> Would it be possible to set a breakpoint in main (or some other known >>> location) to determine the thread id (as we do in some of the JDI tests) to >>> make sure we have the right one before continuing with the rest of the test? >>> >>> Mikael >