1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00
Commit graph

105 commits

Author SHA1 Message Date
Pawel Piech
f88b03fbd0 [247356] Use API tooling. 2008-09-15 21:31:37 +00:00
Marc Khouzam
0fb7dec635 Bug 245749 In the end, we decided to isolate the threadId to groupId map into the eventProcessor, and not crowd the IMIProcesses interface. 2008-09-15 19:42:12 +00:00
Marc Khouzam
2552eacead Bug 247161 According to a GDB maintainer, GDB will not send an ^error after a ^done. Therefore we can remove this case and cleanup. 2008-09-15 17:48:40 +00:00
Marc Khouzam
31aeb7bca9 Bug 245749 Avoid race condition by filling thread to group map of IMIProcesses service directly using new addThreadId() and removeThreadId() methods 2008-09-12 15:17:54 +00:00
Marc Khouzam
fbb2135214 Bug 242234 creates GDBControl_7_0, CLIEventProcessor_7_0 and
MIRunControlEventProcessor_7_0.  It also reverts CLIEventProcessor and
MIRunControlEventProcessor to the logic needed for a GDB pre 7.0 (the way we released it in 1.0)

MIThreadExited and MIThreadCreated events are now only issued once.

Running events are also issued only once, however, it needed a little
gymnastics to keep the same functionality.  Before 7.0, what we did was trigger the event once a continue, step or next command was executed; this allowed to also know the type of command that caused the running event.  With the new MI event "*running", we don't know the type of the command that caused it.

What I did was, like before, when a continue, step, next command is issued, I
store the type of the command, and once the *running event occurs, I use that
type.  I do this using a global MIRunControlEventProcessor_7_0.fLastRunningCmdType

When issuing such a continue, etc command through the CLI, we still need to somehow remember the type of the command.  This is under discussion in the bug.
2008-09-11 19:36:56 +00:00
Marc Khouzam
56adb58e42 Bug 242234 To be able to version the GDBControl service, we cannot make direct reference to the class GDBControl. That class contains a bunch of public methods however. What I did was to brute-force include all these methods in a new interface IGDBControl. I have then replaced every reference to GDBControl with IGDBControl.
Also, I have moved SessionType out of GDBControl and into its own class.
2008-09-09 18:58:09 +00:00
Marc Khouzam
168df99385 Bug 242234 Replacing AbstractMIControl with ICommandControlService; and also replace MIControlDMContext with ICommandControlDMContext 2008-09-09 17:55:44 +00:00
Pawel Piech
67b41fa70e [240997] Changed the return type of IMIDMEvent.getMIEvent() to Object to avoid future compiler errors. 2008-09-08 21:13:42 +00:00
Pawel Piech
c48cd231b5 [240997] - Additional fixes for generics related javac compile error. 2008-09-08 19:06:43 +00:00
Marc Khouzam
4c7c1efdb3 Bug 245297 All views' refresh should clear their
relevant services cache
2008-08-29 02:31:56 +00:00
Marc Khouzam
bd90222c77 Bug 244385 Fixes to some tests that were failing. 2008-08-25 19:38:20 +00:00
Marc Khouzam
581b6804ba Better pattern matching for GDB version 2008-08-21 18:23:59 +00:00
Marc Khouzam
4be124e46d Enabling the instantiation of the GDBProcesses_7_0 service. 2008-08-21 18:00:57 +00:00
Marc Khouzam
587c7cb6cc Bug 244567 makes the project optional. The bug I was attributing to the platform, was, as Pawel kindly pointed out, was actually part of our CMainTab class. I have fixed this. 2008-08-21 14:02:54 +00:00
Marc Khouzam
5799b5a2a0 Bug 244749 We didn't display the proper process name after a local
attach.  This change fixes this by storing the process id of the inferior after the
attach is completed.
2008-08-20 20:26:39 +00:00
Marc Khouzam
0ea73d63b0 Bug 244567 Make the executable optional in the Main launch tab, when doing an attach session.
The project is still mandatory for two reasons:
1- platform does not allow an empty project
2- Source lookup was not able to find the code with an empty project; since the platform did not allow for an empty project anyway, I did not investigate the
source lookup issue.
2008-08-20 19:28:14 +00:00
Marc Khouzam
69293447e9 Bug 244467 Add a checkbox to specify if the solib-search-path should
be used to debug processes; in such a case, we don't send the 'file' command.
2008-08-18 19:40:56 +00:00
Marc Khouzam
d761fa884e Bug 244456 Changes the class GDBMultiProcesses to GDBProcesses_7_0 so as to reflect which version of GDB the new version of the service is meant for. 2008-08-18 17:51:11 +00:00
Pawel Piech
cd9ffceeef [243611] Make the context type for GDBControlInitializedDMEvent and GDBControlShutdownDMEvent events, more generic. 2008-08-18 17:23:34 +00:00
Marc Khouzam
eba5a5fe78 Bug 244336 Use the new --thread/--frame in a centralized location. Added supportsThreadAndFrameOptions() to MICommand to allow subclasses such as CLICommand and RawCommand to override and rely on -thread-select and -stack-select-frame.
Cleanup of MICommands that had --thread/--stack implemented directly in the class.

MIStackNS is no longer needed, and its only
remaining difference (checking if the thread is suspended) has been merged into
MIStack.
2008-08-18 00:37:33 +00:00
Marc Khouzam
f5c6039248 Bug 244053 Until this bug is resolved properly, it is better to set the default for breakpoint applicability to global. 2008-08-13 19:12:04 +00:00
Marc Khouzam
39644e1d06 Bug 242105 Turning on non-stop on a remote target requires a slightly different command. Also, GDB pagination must be turned off to avoid blocking during non-stop. 2008-08-13 19:09:49 +00:00
Pawel Piech
ba200cd3b7 [243611] Added ICommandControlService to list of interfaces used to register GDBControl. 2008-08-13 17:19:34 +00:00
Marc Khouzam
eeb6b080ef Bug 240507 Fix the cache for the GDBMultiProcesses service. Also clean up the use of thread-info 2008-08-11 13:02:51 +00:00
Pawel Piech
1fbfd51fac [243611] - [commands] Add an ICommandControlService interface. 2008-08-08 17:42:23 +00:00
Marc Khouzam
55a4d47017 Bug 240507
Adds a GDBMultiProcesses service which uses the new GDB -list-thread-group commands.  Also adds some support for =thread-group-created/exited events.

Since the public GDB is not ready yet, I have commented out the instantiation of this new service, for now.
2008-08-06 13:39:49 +00:00
Marc Khouzam
0d74c407e4 Bug 243216
MIGDBExitedEvent was listened for but never issued.   Replaced with BackendExitedEvent
2008-08-05 19:15:02 +00:00
Marc Khouzam
c227d7fbf1 Bug 239050
More use of IProcesses.  In the weekly meeting, we had agreed that the RunControl service would make use of IProcesses to list executionContext.  To do this, it is the IProcesses service that will now create the MIExecutionDMC, which is newly declared in MIProcesses.  Doing this I was able to get rid of IMIRunControl, and I introduced IMIProcesses.

Also, we agreed that all RunControl use of IProcesses should be kept out of MIRunControl and put only in GDBRunControl.  This is because other backends using MI will probably need a more sophisticated Process service.  I still have to move the use of IProcesses out of MIRunControlNS

I also cleaned up the RunControl and GDBProcesses unit tests.

I also started spreading the use of a String as a ThreadId, while keeping things backwards compatible.
2008-08-02 01:15:51 +00:00
Marc Khouzam
133ac134ee Bug 241844
Adds the started and exited events when attaching and detaching from a process.
2008-07-31 02:47:36 +00:00
Marc Khouzam
c928924a21 Bug 229288
when using GDB6.6, if the solib-search-path is used, the launch will fail because the -gdb-set sysroot command will fail.  The concept of sysroot seems to have been introduced with GDB 6.7

Let's comment it out since it was used only as a safeguard.
2008-07-30 14:54:21 +00:00
Marc Khouzam
d6faf244f9 Bug 241985
Made ServiceFactory accept a variable number of arguments to allow for different constructor signatures for services.
2008-07-29 19:55:29 +00:00
Marc Khouzam
475a55a1e4 Bug 241985
Cleanup of GDBControl constructor
2008-07-29 18:25:42 +00:00
Marc Khouzam
cb49d0ed44 Bug 227183
Adds the disconnect action.  It is kept disabled though, because it is still missing events which must be generated when we connect and disconnect.
2008-07-29 17:12:19 +00:00
Marc Khouzam
f1f4d7cb2a Bug 241423
Added a connect action to the debug view.
2008-07-29 00:43:30 +00:00
Marc Khouzam
52be905ca0 Bug 241985 2008-07-27 19:12:00 +00:00
Marc Khouzam
aac8edc5d7 Bug 237556
The public GDB now supports non-stop for linux.
This patch fixes the version number we were using and allows the user to click the non-stop checkbox in the launch.
2008-07-27 18:22:56 +00:00
Marc Khouzam
3b749fe80a Bug 242105
When non-stop mode is requested by the user, the FinalLaunchSequence now issues:

maint set linux-async 1
set breakpoint always-inserted 1
-gdb-set non-stop on

Ultimately, with the official GDB release, only the last command should be needed.
2008-07-27 18:12:42 +00:00
Marc Khouzam
7506ff7d02 Better pattern matching to be able to find a GDB build from the GDB HEAD 2008-07-26 19:05:04 +00:00
Marc Khouzam
1c0440682f Bug 242114
Make the new MIProcessDMC, MIThreadDMC, MIExecutionDMCNS and
IMIProcessDMContext private.
2008-07-25 20:32:08 +00:00
Marc Khouzam
0db5876d62 Bug 239050
This patch adds more usage of the IProcesses service.  I believe the patch is
backwards compatible with our 1.0 release (not with the latest HEAD).  The
patch does the following:

1- cleanup context hierarchy to become:

                                          MIControlDMContext
                                                    |
                                           MIProcessDMC (IProcess)
 MIExecutionGroupDMC __/         |
   (IContainer)                               |
        |                                  MIThreadDMC (IThread)
  MIExecutionDMC  _____/
   (IExecution)

Notice how I put MIControlDMContext at the top.
The create*DMC methods have been updated accordingly.
The constructors of the MI*DMC classes have been updated accordingly.

2- Deprecated GDBRunControl.getThreadData() and GDBRunControl.getProcessData()
and have GdbThreadFilterEditor and ThreadVMNode use IProcesses instead.

3- because of (2) I was able to remove IGDBRunControl and GDBRunControlNS
completely.

4- Made MIProcesses.getExecutionData() fetch the thread data using
CLIInfoThreads as is done (but deprecated) in GDBRunControl.getThreadData()

5- Added a cache and event listeners to MIProcesses to cache CLIInfoThreads.

6- Update MIRunControlEventProcessor and CLIEventProcessor to use
MIControlDMContext as their top context instead of IContainerDMContext
2008-07-25 19:37:00 +00:00
Marc Khouzam
5272715f6d Bug 239028
In my conversion of ContainerVMNode I forgot to add the check to make sure the inferior was still running.  This check is now in GDBProcesses
2008-07-23 19:33:21 +00:00
Marc Khouzam
c1f6612245 Bug 239028
This change adds support for multli-process debugging although we are still using the single-process GDB.
With this fix, our debug session will now be in a multi-process situation, with only one process being debugged.  At this point, there should be no visible changes in the debugging experience.
2008-07-23 17:49:01 +00:00
Francois Chouinard
593106d158 Patch for non-stop multi-threading 2008-07-22 19:19:48 +00:00
Marc Khouzam
2a48c0efbd Bug 240525
Updates CLIAttach and MIThreadSelect.
I didn't update the usage of MIThreadSelect because it required more cleanup than I cared to do at this point.
2008-07-18 15:09:06 +00:00
Marc Khouzam
8b3a47453a Removed a FIXME 2008-07-18 12:48:22 +00:00
Marc Khouzam
65b52f3a07 Bug 239050
Make the FinalLaunchSequence use the IProcesses.getRunningProcesses() call instead of doing the work itself.
2008-07-18 01:13:59 +00:00
Anton Leherbauer
337235a75e 214386: [run control][debug view][source lookup] When stepping fast (holding down F5 key) the IP in editor does not keep up. 2008-07-16 11:02:58 +00:00
Marc Khouzam
9af6a7b237 Bug 239050
Use the generic IDMContext instead of IContainerDMContext because some debuggers may not have a run control service
Replace IThreadDMData.getDebuggingContext() with method getDebuggingContext()
2008-07-15 15:21:24 +00:00
Marc Khouzam
f440765624 Bug 239050
some improvements to the IProcesses interface where needed:

1- getRunningProcesses() should take an IContainerDMContext as a parameter to prepare for multi-core/multi-processor debugging.

2- attachDebuggerToProcess() should return an IContainerDMContext as part of the requestMonitor.  This is because, once a process is attached to, it will then need to have a container context to use the RunControl service.

3- getProcessesBeingDebugged() should take an IContainerDMContext as a parameter to prepare for multi-core/multi-processor debugging.  Also, it should return an array of IContainerDMContexts as part of the requestMonitor;  this is because, processes that are being debugged should have a container context to use the RunControl service.
2008-07-08 13:40:27 +00:00
Marc Khouzam
e3eb35603d Bug 239050
New interface and service to provide access to the OS's process information, manipulation methods, and debugging methods.
2008-07-03 19:05:20 +00:00