It's all about the answers!

Ask a question

How do I generate a Java (JVM) user system dump for an RTC Eclipse client launched Java application?


Geoff Alexander (19623948) | asked Jan 24 '13, 2:37 p.m.
edited Jan 24 '13, 2:49 p.m.
We support a Java application using the RTC Eclipse client on Windows 7 64-bit, unit testing the application by running it from within the RTC Eclipse client.  I'm trying to debug a memory usage problem in our application and would like to generate user system dumps for the application's JVM.

The usual method for generating a JVM system dump on Windows is to specify an appropriate -Xdump:system:events=user option when starting the application and then entering a ctrl-break in the command window in which the application was started from to generate the system dump.

The problem is that a Java application run from within Eclipse doesn't have an associated command window in which to enter the ctrl-break.  In searching the Web, I found mention of Windows SendSignal utility that sends a ctrl-break to a running process.  However, SendSignal doesn't work for 64-bit processes.  I also found the following Eclipse bug, Bug 13524 - Console doesn't send Ctrl-Break to remote program, that addresses this question. The Bug 13524 solution is to run the Java application using java rather javaw, which should cause the Java application to be launched with an associated Command Window.  Bug 13524 was fixed in Eclipse 2.0, so the fix should be available in the RTC Eclipse client.  However, when I changed my Java application's run configuration to run the application using java rather than javaw, I still don't get an associated Command Window.

So  does anyone know I can generate a Java (JVM) user system dump for an RTC Eclipse client launched Java application?

Comments
Geoff Alexander commented Jan 24 '13, 3:49 p.m.

BTW, I start my RTC Eclipse client via the Windows start menu.  This is simply a menu shortcut for C:\Program Files (x86)\IBM\TeamConcert_1\eclipse.exe" -product com.ibm.team.concert.product.  There's no Command Window associated with the RTC Eclipse client when started in this manner, but I wonder if the RTC Eclipse client has an undisplayed Console.  If so, might this prevent Java applications run from within the RTC Eclipse client from having an associated Command Window even when run with java.

Accepted answer


permanent link
Matt Lennon (61225) | answered Jan 25 '13, 7:49 a.m.
JAZZ DEVELOPER
Hi Geoff.

There is a version of SendSignal that works with 64-bit Windows processes that you can download from here:

    https://wait.ibm.com/

You'll  have to register as a new user, but don't worry - they won't try to sell you anything. ;-)
Once you're in, find the link for the Windows data collector scripts & download the zip file, which includes "SendSignal64.exe".

Let me know if you have problems accessing this site.

     -Matt
Geoff Alexander selected this answer as the correct answer

Comments
Geoff Alexander commented Jan 25 '13, 8:43 a.m. | edited Jan 25 '13, 8:47 a.m.

Thanks Matt.

SendSignal64 worked like a charm.

BTW, I already had WAIT installed and had even tried SendSignal from it.  However, I hadn't considered that WAIT might also include a 64-bit SendSignal.

Geoff

Your answer


Register or to post your answer.


Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.