Debugger problems on 2nd run [message #332398] |
Mon, 20 October 2008 22:50  |
Eclipse User |
|
|
|
Apologies if this message has already made it to the newsgroup - I sent it
yesterday via the web 'news-portal', but 24 hours later I still can't see
it on the web interface so I'm assuming it didn't get posted.
I've written an IDE for a programming language, including debugger launch
support. I've based my debugger code on the following article:
http://www.eclipse.org/articles/Article-Debugger/how-to.html
Everything runs fine - I can launch my code in debug mode, and step
through, see the stack, etc.
My problem is that on the 2nd (and subsequent) times that I press the
'debug' button, the 'Debug' view doesn't seem to update at all. I have to
double click the launched program in the debug view to get it to realise
that it has a stack, then double click the thread between each step to get
it to update the stack again. The debugger is working fine though - I can
see the commands being sent to and from it. It's just the UI that is
broken.
If I close the debug view between runs, it seems to work fine.
I'll post more details if this message actually makes it through. I did
have a more detailed message yesterday but I'm not going to waste my time
typing it all up again if it isn't going to work.
|
|
|
Re: Debugger problems on 2nd run [message #332399 is a reply to message #332398] |
Tue, 21 October 2008 01:10  |
Eclipse User |
|
|
|
Here's some more details about my problem.
I have a LaunchConfigurationDelegate subclass, which does something like
the following for the debug launch. I'm using a custom class to exec the
commands, as we need to do stupid things for our Windows build system,
like starting Cygwin first and setting environment vars:
---
SysCommandExecutor exec = new SysCommandExecutor();
String cmd = "some pre compile commands";
p = exec.runCommandHelper(cmd);
DebugPlugin.newProcess(launch, p, "Pre compile 1...");
p.waitFor();
String cmd = "some linking commands";
p = exec.runCommandHelper(cmd);
DebugPlugin.newProcess(launch, p, "Linking...");
p.waitFor();
if (p.exitValue() == 0 && mode.equals("debug")) {
cmd = "command to run my debugger";
p = exec.runCommandHelper(cmd);
IProcess process= DebugPlugin.newProcess(launch, p, "Debug Run");
IStreamsProxy iSP = process.getStreamsProxy();
IDebugTarget target = new G12DebugTarget(launch,process,iSP );
launch.addDebugTarget(target);
DebugPlugin.getDefault().addDebugEventListener((IDebugEventS etListener)
target);
---
So, this works the first time, but on subsequent runs the Debug view
doesn't notice that there is anything happening.
If I close the Debug view, then re-open it for the next run, it is all
fine.
Any ideas what I'm doing wrong here?
Thanks,
Matt.
|
|
|
Powered by
FUDForum. Page generated in 0.04032 seconds