Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 410108 - The "suspended" decorator is sometimes shown even if the process is running
Summary: The "suspended" decorator is sometimes shown even if the process is running
Status: CLOSED DUPLICATE of bug 337899
Alias: None
Product: CDT
Classification: Tools
Component: cdt-debug-dsf-gdb (show other bugs)
Version: 8.2   Edit
Hardware: PC Linux
: P3 minor (vote)
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact: Marc Khouzam CLA
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-06-06 13:05 EDT by Marc-André Laperle CLA
Modified: 2016-08-26 12:59 EDT (History)
4 users (show)

See Also:


Attachments
Screenshot (5.49 KB, image/png)
2013-06-06 13:05 EDT, Marc-André Laperle CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Marc-André Laperle CLA 2013-06-06 13:05:08 EDT
Created attachment 232055 [details]
Screenshot

C/C++ Development Tools 8.2.0.201306051012
GNU gdb (GDB) 7.5.91.20130417-cvs-ubuntu

Sometimes, after stopping at break points and resuming a few times, the suspend decorator is shown on the executable in the Debug view even though it's running. I think this happens more often with multi threaded executables. See attached screenshot.
Comment 1 Mario Prieto CLA 2013-08-27 09:57:30 EDT
I have the same issue and I was investigating where the problem is. What I found out was that from the version 7.2 on, the property setUseThreadGroupOptions of the class AbstractMIControl is being always set to true when creating a GDBControl_7_xxx instance. This causes a resume command to look like this:

-exec-continue --thread-group i1

Instead of sending

-exec-continue --thread 1

That is supposed to be so, but the problem is that the response should look like this:

*running,thread-id="all"

(note the "all" value) in order for the ProcessNode in the tree to get set to the "running" status, instead the response (that I get) is:

*running,thread-id="3"

which is enought for the thread state to get set but not for the process state as it expects "all".
Comment 2 Marc-André Laperle CLA 2013-08-28 10:19:26 EDT
(In reply to comment #1)
> That is supposed to be so, but the problem is that the response should look
> like this:

So are you saying the problem is on the GDB side?
Comment 3 Mario Prieto CLA 2013-08-28 10:27:39 EDT
(In reply to comment #2)
> (In reply to comment #1)
> > That is supposed to be so, but the problem is that the response should look
> > like this:
> 
> So are you saying the problem is on the GDB side?

No, what I'm saying is that the option --thread-group is valid for a GDB version => 7.2 but the GDB documentation says in this case GDB will pick one thread and execute the action on it and then return that thread id in the response and (in my oppinion) the eventHandler in DSF shouldn't expect to receive "all" when it sent a specific Thread-Id. Instead it should check if all Threads are running.

I hope now it clear what I meant. Sorry if I didn't express myself clearly.
Comment 4 Marc-André Laperle CLA 2013-08-28 10:54:07 EDT
(In reply to comment #3)
> (In reply to comment #2)
> > (In reply to comment #1)
> I hope now it clear what I meant. Sorry if I didn't express myself clearly.

It's clear now, thanks!
Comment 5 Marc Dumais CLA 2016-08-26 12:59:22 EDT
I was about to open a new bug about this issue. Turns out there are already two :) 

It seems both this bug and bug 337899 are about the same problem, so I am keeping the oldest.

*** This bug has been marked as a duplicate of bug 337899 ***