Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is it possible to debug multiple threads in eclipse in different windows?

I have two monitors and it would be handy to be able to have two eclipse windows, one each running the debugger against a different thread of the same jvm.

Right now I have to keep going to the debug view and clicking on the other thread to switch to it's context. Having both contexts on the screen at the same time would make things a lot easier.

Is there a way to do this in eclipse?

like image 356
stu Avatar asked Apr 24 '12 20:04

stu


People also ask

How do I debug multiple threads in Eclipse?

Start debug session. When the breakpoint in run is hit, you can go to another breakpoint, enable that breakpoint if it was disabled. Then right click on the breakpoint -> go to Filters, now you can select the thread you want the breakpoint to be remain enabled for and you can uncheck the rest of the threads.

Why it is difficult to debug multi threaded programs?

Parallel processing using many threads can greatly improve program performance, but it may also make debugging more difficult because you're tracking many threads. Multithreading can introduce new types of potential bugs.

How do I debug multiple projects in Eclipse?

Put breakpoints in both projects and launch them in debug mode. Switch to "Debug" perspective and find "Debug" view there. You will see a list of active debug sessions with their respective call stacks. You can click on every debug step of every debug session and Eclipse will open that step in code editor.


1 Answers

Is it possible to debug multiple threads in eclipse in different windows?

Well I just tried it and it sort of works. You don't need multiple monitors to try it.

  1. I created 2 threads and put break points in each of their run() methods.
  2. I ran the application and the 2 threads show up as paused.
  3. I pulled down the Eclipse Window menu to New Window. The new complete Eclipse window should have a debug tab for you to view.
  4. I can switch back and forth and step around in each of the threads.

This works but even though there are 2 Debug tabs, they are joined somewhat. When I step forward in the Thread-1 debug window, the focus changes to Thread-1 -- even in the other Thread-2 window.

Edit:

Actually I played with it a bit more and it seems to work pretty well. If I switch to the other window debugging Thread-2 and step, it expands the Thread-2 stack trace in the Thread-1 window but doesn't actually seem to change the highlight. I can go back to the Thread-1 window and step forward easily in Thread-1.

I don't know of any way to create two separate debug windows that are not fully connected. Web searches come up empty as well.

like image 173
Gray Avatar answered Oct 20 '22 10:10

Gray