1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-09-10 12:03:16 +02:00
Commit graph

991 commits

Author SHA1 Message Date
Jonah Graham
833f9391b7 Explicitly start gdb with mi2
We should explicitly set the version of mi to use. Until recently
mi == mi2, but with the recent introduction of mi3 as the default
we need to be explicit.

The other place that specifies interpreter is explicit about version
and includes an important comment on the subject

1590791e76/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/GDBBackend.java (L189-L191)

Part of #816
2025-01-24 14:04:47 -05:00
Jonah Graham
3594dce68a Fix for GDB 13 "script" field in breakpoint
"script" field of a breakpoint used to be output as a tuple (<= GDB 12),
though it is a list. There are cases of flags that can be applied to
get old or new behaviour too.
This code handles both cases transparently.
See https://sourceware.org/bugzilla/show_bug.cgi?id=24285

Part of #816
2025-01-24 14:04:47 -05:00
ewaterlander
c4f22cd1e7
Search debugger first in selected CBS toolchain. (#1033)
For Core Build System local debug target. If there is no absolute path
set in the Debugger tab of the launch configuration, try to find the
debugger first in the selected toolchain. If the debugger is not found
in the toolchain, let GdbLaunch search in PATH.
If an absolute path is set, GdbLaunch will use that.

Fixes #1008
2025-01-16 12:03:11 -05:00
Jonah Graham
ae9f145856
Always show CDT Debug Preference Pages (#974)
The CDT Debug Activites was originally added when we had two
distinct debuggers in CDT, the DSF one and the CDI one. To
eliminate confusion the preferences for the respective
debug infrastructures were only displayed if users actually
ran such a debug session.

Now with just one debug infrastructure, we should always display
the preference pages. It also removes some confusion that some
preference pages weren't visible until after you started the
debug session. So for example, users couldn't turn on or off
a bunch of default settings until after creating and launching
a debug session.

I have left the enableActivity call in GdbLaunchDelegate in
case any extenders were hiding some of their UI behind that key.

The only exception in the above is the View Performance preference
page which was misplaced in the top level Run/Debug preference
tree, even though it is CDT specific. That preference page has
been re-parented to C/C++ -> Debug

Fixes https://github.com/eclipse-cdt/cdt/issues/972
2025-01-06 12:46:55 -05:00
ewaterlander
de78b0f4a2
Core Build project without binaries. (#959)
Do not check for binaries in the project directory if the user defined
a binary in the Main tab. This supports the case where the user
disables auto build and selects a binary outside the project directory.
Otherwise the binaries check would stop the launch with the message
that no binaries are found in the project.
2024-12-12 20:15:01 -05:00
ewaterlander
f259d60aa3
Debugger and Source tabs for the Core Build launch configuration. (#950)
The launch configuration for local Core Build projects got the
Debugger and Source tabs in debug mode. Now the user can set the stop
at startup, a specific debugger, and all other Debug options as we
know from Managed Build projects.

The GdbLaunch class automatically picks up all the debug settings from
these new tabs. No additional code was needed for that.

The composition of Core Build tab groups is now fully done via the
launchConfigurationTabGroups extension-point.

This change relates to #758. It affects all Core Build projects,
including CMake projects.
2024-12-10 12:08:08 -05:00
Erwin Waterlander
5639ba9ff9 Updated Main Tab for Core Build local launch configurations.
A new Main Tab was created for Core Build local projects based on the Main
Tab used for the classic Managed Build projects. It adds these
features:

* Option to select a different binary.
* Option to control launch pre-builds.

The default value for the binary is empty string. With empty string
the behaviour for binary selection stays the same as it was.

The project name is fixed and cannot be changed. A Core Build launch
configuration is created with the project and tied to it.

There is no option to select a build configuration, because for Core
Build projects this is selected via the LaunchBar's Launch Mode.

This change relates to #758. It affects all Core Build projects,
including CMake projects.
2024-11-27 10:29:55 -05:00
betamax
959c02755c
Allows launch config to override launch target connection type (#625)
When launching a GDB debug session using the Launch Bar and a Launch
Target, now the launch takes into account a REMOTE_TCP value in the
launch configuration before considering the type of the Launch Target.

Improves the change submitted in:
Bug 547881 - Allow targets to set ATTR_REMOTE_TCP

Fixes issue #622
2023-12-27 18:42:00 -05:00
Jonah Graham
a92b90a4c8 Bump all bundles that are missing BREE in 11.3.0
Part of #551
2023-09-15 07:24:17 -04:00
Jonah Graham
c7169b3186 Refactor XML file handling 2023-08-16 11:06:59 -04:00
Jonah Graham
ac84c4ec86 Prepare repo for CDT 11.3.0 development
Some bundles are bumped because dev happened between 11.2 release and
this version bump. The most significant change that happened
was the bump in Tycho version which changed ECJ version and
hence some class files changed

Part of #420
2023-07-10 21:41:39 -04:00
Umair Sair
e8f17beeb5
Bug 528145 - Breakpoints are not working with remote attach launch (#336)
Looking at the logs, it seems that the regression is caused at 8bec791
where support for multi-process was added. We removed breakpoints
tracking support from final launch sequence and moved it to debug new
process and attach to process logic but none of these are run for remote
attach launch, hence breakpoint tracking is not started for remote
attach launch.

To fix the problem, IGDBProcesses.attachDebuggerToProcess(..) is updated
to handle remote attach launch as well instead of final launch sequence
handling it.

This commit is created after reverting 7bddb5f and 96839a0 which is the
older fix done to fix this issue and the other commit was to fix the
regression caused by the old fix.

The problem with older fix was that for non-stop mode, attach to process
was not working for remote launches when there is already a process
being debugged. Note that to use this feature, gdbserver should be
started with --multi option.

* Revert "Bug 580259: Not all remote session have a connected process"

This reverts commit 96839a029d.

* Revert "Bug 528145 - Attach debugger to a gdbserver remote session"

This reverts commit 7bddb5f4cb.
2023-04-10 18:32:11 -04:00
Jonah Graham
1d73f112dc Use mi-async instead of target-async on GDB >= 7.12
target-async is the old name for mi-async. mi-async came
into existence in GDB 7.8, but in later releases it becomes
a warning to use the old name.

Because we already have the version infra for 7.12 we
change to using mi-async from 7.12

A similar change was made for
[cdt-gdb-adapter a while ago](https://github.com/eclipse-cdt-cloud/cdt-gdb-adapter/blob/main/src/GDBBackend.ts#L114-L116)

Fixes #176
2022-11-22 11:43:01 -05:00
Jonah Graham
6eaaf714cc Upgrade build.properties warnings to errors
Warning in build.properties will be errors when they run
in the tycho build, like this:

```
Error:  Failed to execute goal org.eclipse.tycho:tycho-packaging-plugin:2.7.5:package-plugin
(default-package-plugin) on project org.eclipse.cdt.core.tests:
/home/runner/work/cdt/cdt/core/org.eclipse.cdt.core.tests/build.properties:
bin.includes value(s) [test.xml] do not match any files. -> [Help 1]
```

So make them errors in the workspace so that the issue is
detected before push.

Some build.properties issues don't affect the build, but
are still indicative of a problem.
2022-11-06 18:29:28 -05:00
John Dallaway
1bb0cf0a37
Enhance memory data initialization checks (#138) 2022-11-06 12:34:32 +00:00
Jonah Graham
1f19cff227 Make missing identifiers and classes in plugin.xml errors
Subsequent commits fix the errors
2022-11-04 08:19:23 -04:00
John Dallaway
1590791e76
Eliminate deprecated GDBBackend methods for CDT 11 (#112) 2022-10-25 13:40:13 +01:00
Jonah Graham
6cd2e97470 Bug 580873: Remove error checking on dprintf parameters
The parser for dprintf parameters was much too simplistic and
prevents real uses cases from operating.

It is not necessary to remove the , between the arguments to
dprintf, so don't try to split on that anymore. That also
means we can't check for and error on mismatch between format
specifiers and number of arguments.

e.g. "===> XML_EVENT_TEXT(%s)\n", (char *)strtok(Text,"\n")
should be permitted.

The alternative would be to write a more complete parser for
both the printf specification and the arguments. Well out of
scope and unnecessary.

Some inputs may now be accepted by the GUI and then when
inserted with GDB fail. These errors are displayed in the
GUI already anyway.
2022-10-20 10:27:58 -04:00
Jonah Graham
34381cd253 Bump Major version of o.e.cdt.dsf.gdb for CDT 11.0.0 2022-10-19 10:53:09 -04:00
Jonah Graham
e4e06008af Update to Java 17 as BREE. Fixes #80 2022-10-03 12:42:37 -04:00
Torbjörn Svensson
96839a029d Bug 580259: Not all remote session have a connected process
Contributed by STMicroelectronics

Change-Id: Idec88f4bf0cbc8326bf19b9f081af9f9f9d437e2
Signed-off-by: Torbjörn Svensson <torbjorn.svensson@st.com>
2022-07-21 04:47:09 -04:00
Umair Sair
7b040db113 Bug 579877 - Slow Threads update for debugging on remote target
Reason:
=======
The problem is that we use '-thread-info' command for each thread and
for each command, a lot of common conversation happen between gdb and
gdbserver for each command.

Solution:
=========
We should use '-list-thread-groups <group id>' instead which provides
the same required information for all the threads and minimizes the
communication between gdb and gdbserver. This command takes lesser time
than the collective time taken by all '-thread-info' commands.

Tested with 2 and 8 threaded application using gdb 7.1 and 11. The gain
is more prominent as the number of threads increases.

Signed-off-by: Umair Sair <umair_sair@hotmail.com>

Change-Id: Ie4824bf110f05d4136697f4e1ecbcc19dcf145a7
2022-05-10 21:49:24 -04:00
Jonah Graham
a1c02e2cce [releng] Apply auto-clean of save to all files with Eclipse 4.23
This mostly is using diamond operator, but includes
adding missing @Override and organizing imports and
applying formatting improvements in the JDT formatter.

Change-Id: Id91cbff33b0a039cc5121945ffbc407ecba45866
2022-04-19 20:13:15 -04:00
Jonah Graham
148ae40d0f [releng] Make CDT Clean-up profile match Editor on save actions
The CDT Cleanup profile had a bunch of extra cleanups applied to it, this
prevents running the CDT cleanup profile manually to simulate running the
save actions on all Java files

Change-Id: Iad491e1258a4ba90d81d1457ea0f6779e3663e38
2022-04-19 20:13:15 -04:00
Torbjörn Svensson
7581f79346 Bug 579687: Reduce concurrent commands to 1 for GDB 9/10/11
Since the fault in GDB is triggered when there is more than one MI
command sent before the response for the prior one is processed, limit
the number of concurrent commands to 1 for the affected versions.

Contributed by STMicroelectronics

Change-Id: I5b47fc64d90eefdc44c1d2ead0da99b35aadfa39
Signed-off-by: Torbjörn Svensson <torbjorn.svensson@st.com>
2022-04-14 18:27:12 -04:00
Jonah Graham
7400e22b1f [releng] Update all legal files with update_legal_files.sh
The about.html was changed as per
https://gitlab.eclipse.org/eclipsefdn/it/websites/eclipse.org/-/issues/90

Change-Id: Ied879279460a8fc610630fc26794ab3df9eae39f
2022-04-13 13:42:35 -04:00
Torbjörn Svensson
ffb319ba61 [releng] Correct version increment due to new API
Contributed by STMicroelectronics

Change-Id: I9aad65f862f4681c531baa0ca94b312f9c1774af
Signed-off-by: Torbjörn Svensson <torbjorn.svensson@st.com>
2022-04-12 08:18:45 -04:00
Jonah Graham
5c4d54df1a [releng] Update comparator repo to 10.6.0
Change-Id: Ie4e5bc90a41bb6e47cd34afb42126e1934fcc042
2022-04-10 20:55:36 -04:00
Jonathan Tousignant
7bddb5f4cb Bug 528145 - Attach debugger to a gdbserver remote session
Change-Id: I18bfe412a46b727c74597ceb871391dcb48b302d
2022-03-10 09:54:34 -05:00
John Dallaway
e1e9d9e792 Bug 578323: Initialize memory data before remote connection
We must ensure that memory data is initialized before the restoration of
persisted memory monitors is triggered.

Change-Id: I1fc2af877d27f331fbc4c516c05fb871dad410c4
Signed-off-by: John Dallaway <john@dallaway.org.uk>
2022-01-26 03:24:23 -05:00
Jonah Graham
640dc53892 [releng] Bump version numbers for all modified projects
Change-Id: I0d78c550512d8e63374bf1bc3a53f80e5d387e31
2022-01-12 18:57:12 -05:00
Jonah Graham
8adb3bf37e [releng] Resolve API errors and warning since branch
The org.eclipse.remote.* version bumps were all because of
BREE change since the last release.

The api filters are removed because of the baseline bump

Change-Id: Ic7317dafa9872bb737502654a726823a35ec47b3
2022-01-12 14:12:50 -05:00
Mat Booth
ef30e37327 Bug 561996 - Remove dependency to com.ibm.icu from CDT DSF GDB
Switch to JRE implementations:
 * com.ibm.icu.text.MessageFormat -> java.text.MessageFormat

Signed-off-by: Mat Booth <mat.booth@gmail.com>
Change-Id: I823bcea99adad3decdfa29651b934b5902607f70
2021-11-03 18:28:19 +00:00
Jonah Graham
e60ef74ebb Bug 576884: Ignore unsuitable adapter when the UI layer isn't running
When the UI layer is running the correct terminate adapter is returned,
when the UI layer is not running, the Launch.terminate code is a valid
fallback, and the org.eclipse.debug.internal.core.commands.TerminateCommand
is not an appropriate adapter to use.

Change-Id: I3c4c273b78b4e5bc9fe521b4a24ef5443852d3c0
2021-10-25 18:56:15 -04:00
Umair Sair
68c67b20a4 Bug 576291 - Add preference for suspend timeout
- Adding preference in GDB preference page

Change-Id: Ic179ddd4f15eb02f8de479ca095cc2ec19818c6b
Signed-off-by: Umair Sair <umair_sair@hotmail.com>
2021-09-28 21:20:39 +05:00
Jonah Graham
ad4d444823 [releng] Prepare for CDT 10.5.0
Change-Id: I9b72edf4a0ff0771a147934dd7f1c92ba1ee799a
2021-09-26 20:23:17 -04:00
Victor Rubezhny
8fa72d559f [575317] CDT Debugger fails to start in Eclipse Flatpak
'/tcp' suffix is not supported anymore with 'gdb',
so an IP address should be in form of HOST:PORT
(and not of HOST:PORT/PROTOCOL)

See: https://github.com/flathub/org.eclipse.Java/issues/36

Change-Id: I9eedc450da0d39305fc5d4cde851eb991c3c31f0
Signed-off-by: Victor Rubezhny <vrubezhny@redhat.com>
2021-08-09 22:02:30 +02:00
Jeff Johnston
d27126df9a Bug 574874 - Disable full gdb console support if running CDT in flatpak
- add check for flatpak environment variable in
  GDBBackend_7_12.isFullGdbConsoleSupported() method
  and return false if variable is set

Change-Id: I667a63395592e2671ab3bf6f255e7428371086b3
2021-07-15 16:12:37 -04:00
Abdullah Khalid
481f08beb4 Bug 574239 - Adding path mapping through CSourceNotFoundEditor makes
launch configuration's Source tab dirty

Change-Id: I32396e274e4e803344d5e4a56324fb84ca40fd93
2021-06-16 19:16:06 -04:00
John Dallaway
00204a3c4c Bug 573506: Fix counting of opcode bytes
Change-Id: Ib5d1f1984e064099fc5cb357508359a5805f131c
2021-05-13 13:45:26 -04:00
Jonah Graham
f877963e37 Bug 573307: Correct since tags
Change-Id: I7dd2bc0a98c36e9c4fd8db19a83a1b87c7fdd791
2021-05-02 23:47:22 -04:00
John Dallaway
5e9fc00242 Bug 572944: Set GDB process attributes
Change-Id: I98350d5307c23f91207d55372cc85319ebe716c4
2021-04-25 14:39:03 -04:00
Marc Ernst
766d6fec6a Bug 572880: show opcodes in disassembly view as byte sequence
Change-Id: Ib7ad37968ab23ff22cbb1fc110e85b47ffc37ab8
2021-04-23 16:11:35 -04:00
John Dallaway
97c834c890 Bug 572944: Show GDB path in OS format
Change-Id: I17c34e0c04132122ad972b7d0e5379084b5be622
2021-04-19 13:42:10 -04:00
Jonah Graham
104819751c [releng] Remove no longer needed API problem filters
Change-Id: I6d648357ca1b9dc46d6f9e4757deba284d90d674
2021-04-12 09:28:46 -04:00
Torbjörn Svensson
5654112209 Bug 572759: Allow debugging binaries with project relative path
In some situations, it makes sense to have a build structure parallel
with the source tree, and it this case, the build results may not be
part of the resources visible in the Eclipse workspace.
Current implementation allows absolute paths to the binary to debug.
While it works, it's a cumbersome way to handle the above situation.
By resolving the relative path outside of Eclipse scope allows to point
to files that are not part of the Eclipse workspace, allthough the path
is relative to a project in the workspace.

Contributed by STMicroelectronics

Change-Id: I284a5dad61e692dae4029e5f142d23d8cda98ed0
Signed-off-by: Torbjörn Svensson <torbjorn.svensson@st.com>
2021-04-11 16:07:16 +02:00
Jonah Graham
549b9d00c0 Bug 572742: Fix reverse debugging enable at startup
This fixes and reenables a bunch of reverse debugging tests

Change-Id: Ib44a60c06c4c94b2dfca4631794f960ed99a0465
2021-04-10 11:06:31 -04:00
Jonah Graham
554bf844d5 Bug 572742: Improve API by allowing "..." instead of String[]
Change-Id: I4bc0a5c3807caaa012d1875b5ab68008503519b9
2021-04-09 20:51:07 -04:00
Jonah Graham
83d4fa001e Bug 572581: reenable disabled DSF-GDB tests
Many of the disabled tests were failing because they were dependent
on specific combinations of GDB + GCC and where exactly code
stops and steps effect when entering functions. The old code
mostly ran to a function and then stepped a known number of times.
But what changes between GDB versions is how many steps are needed.
Therefore for all failing tests update to run to a specific line
number by using tags in the .cc file and running to them to make
sure the test is precisely on that line.

This partially reverts commit 8220215a2e
and 92272c6465

Reason for revert: These tests were "temporarily" disabled a while ago
as part of the JIRO migration in Bug 545624.

Change-Id: I703429c8a81c856360f1cb4e899026200527f7c6
2021-04-09 20:51:00 -04:00
Umair Sair
321100a2a7 Bug 571161 - MIBreakpointsSynchronizer is broken in certain scenarios
- Added null check to prevent NPE.
- Fixed the collector used in doTargetBreakpointsSynchronized method.

Change-Id: I1ea48b9231882923fe364321e42d0202a0924bf3
Signed-off-by: Umair Sair <umair_sair@hotmail.com>
2021-02-23 11:01:21 -05:00