1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-06-05 08:46:02 +02:00
Commit graph

1430 commits

Author SHA1 Message Date
Jeff Johnston
3e60faaa6c Replace refreshScannerInfo with setActive method
- remove the refreshScannerInfo method from ICBuildConfiguration2
  but add it as a protected method of CBuildConfiguration
- edit MesonBuildConfiguration and CBuildConfiguratio appropriately
- add new setActive method to CBuildConfiguration which calls
  refreshScannerInfo

Change-Id: Iebae09507f24293007a299eea3069451e566a91b
2018-03-20 15:54:15 -04:00
Jeff Johnston
60affd8b9f Bug 532420 - Make Container Core Build indexing more efficient
- add new ICBuildConfiguration2 to keep API checks happy
- remove refreshScannerInfo method from ICBuildConfiguration and
  put it in ICBuildConfiguration2
- make CBuildConfiguration implement ICBuildConfiguration2
- update ContainerPropertyVolumesModel to use new Docker plug-ins
  using docker-client 8.9.2.
- fix MesonBuildConfiguration to use a job for each compile line being
  processed, then wait until all jobs are done before causing
  an reindex to occur (this will maximize parallelism when building
  in Containers)
- fix ContainerCommandLauncherFactory to save the project so we
  can exclude project directories when copying header files using
  the new Docker Tooling interfaces
- fix CoreBuildLaunchBarTracker to use ICBuildConfiguration2
  interface to make the call to refreshScannerInfo


Change-Id: I2138f5111614e7821e46c22731397a01035eac0a
2018-03-19 21:50:31 -04:00
Jeff Johnston
c9822e117e Bug 531985 - Support Container build with new Core Build
- add new ContainerTargetTypeProvider to create a new target
  for each usable Docker image from known connections
- add new ContainerGCCToolChain class which supports gcc in a
  Container for projects with Container targets
- add new ContainerGCCToolChainProvider which creates a
  ContainerGCCToolChain for each usable Docker image from
  known connections
- add new CoreBuildContainerLaunchConfigProvider class
- add new CoreBuildContainerLaunchDescriptorType class
- add new ContainerTargetLabelProvider class to support adding
  a new Container target
- add new NewContainerTargetWizard and NewContainerTargetWizardPage
  to add/edit a new Container target
- add new IContainerLaunchTarget class
- add new refreshScannerInfo method to ICBuildConfiguration interface
  to allow switching ScannerInfo when target is switched
- implement default refreshScannerInfo method in CBuildConfiguration
  which currently does nothing
- add new fetchContainerDirs method to CommandLauncherManager to
  fetch container directories for a project that is using
  Core Model and CBuildConfigurations
- add new verifyIncludePaths method to ICommandLauncherFactory2 that
  takes an ICBuildConfiguration and implement this for
  ContainerCommandLauncherFactory
- fix ContainerCommandLauncher command handling to use a list
  of Strings to preserve spaces in arguments and call new
  runCommand interface in Docker UI...as well do not link
  any args that are files if they are system directories (e.g.
  /usr /bin)
- fix getCommandLauncher in ContainerCommandLauncherFactory when
  passing an ICBuildConfiguration so that it uses the configuration's
  toolchain properties to figure out if a Container build is asked for
- fix launch method of ContainerLaunchConfigurationDelegate to check
  if working directory is null in which case use the project directory
- also add buildForLaunch method override and preLaunchCheck to
  ContainerLaunchConfigurationDelegate so it can be used for
  Core Build launching as well and ensure that the project name
  and active configuration is set properly
- in CoreBuildLaunchBarTracker, use the lastTarget to set the
  active target instead of the local field "target" as this will
  end up setting a random target as the active target.  Also
  call the new refreshScannerInfo method of the build configuration
  when the active target has changed
- add ICBuildConfiguration support to Docker LaunchShortcut such
  that properties will be set appropriately and acquired from the
  toolChain
- bump up Docker launcher version to 1.2.0

Change-Id: I074b02314f6ac6942fdf230b1dc8e154ced3088e
2018-03-06 14:48:01 -05:00
Alexander Kurtakov
13f83967c4 Remove unnecessare NON-NLS.
Change-Id: I5ee2ee0c2fe784d1734dd48c653232ba9909f6bd
Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
2018-02-08 13:02:21 -05:00
Doug Schaefer
5b29b5b5d8 Bug 530673 Fix issue with CMake and changing toolchains.
Cleaned up add and remove of toolchain files, handling of when
a toolchain changes for a config, and the launch bar tracker to
be more accurate with toolchains.

Change-Id: I1a1efdf08a5f47058552c85404fe8d602d158e73
2018-02-03 20:33:56 -05:00
Doug Schaefer
4eb76a4ede Fix issue with core build launch desc deletion.
When projects were deleted, sometimes the descriptors
would not. We were creating our own core build launch
descs which didn't have an equals method causing duplicate
entries to be created. Arduino uses launch bar's project
launch descs. This change does the same for core build.

Change-Id: I2a6f60e92aaa20892d6c1d8331ded903b226984f
2017-12-01 12:47:21 -05:00
Doug Schaefer
6db1357b1a Stop launch on error. Fix up set/get make commands.
We were missing the dialog to ask if you wanted to continue
after build errors in a project. We were missing the method
that provided the list of projects to do that check.

Also while testing that noticed the handling of the build
and clean command UI was broken with make projects.

Change-Id: I698e151672a114bb22c815f49d362b6413b9c315
2017-11-27 18:04:40 -05:00
Doug Schaefer
15c8bad95d Serial Flash Target and Launch. Clean up Generic Launch.
Adds target, launch classes, and launch bar support for targets
intended to upload their code to flash using a Serial Port. The
port is co-ordinated with the Serial Terminal so that the terminal
is paused during the upload.

Also cleaned up the Generic Launch so it's not using the
External Tools launch which has a number of UX issues. This
simplifies the settings and gives us more control. And it's made
reusable for the Serial Flash launch.

Change-Id: I31e9970243fbf1cf22d027bbdb892fde104dbefe
2017-11-13 15:56:57 -05:00
Doug Schaefer
736d7b5955 Make Qt toolchain selection more resilient.
On my Windows box I have lots of GCC toolchains. Make sure it selects
the one from the Qt install. And fix a few NPEs and things around that.

Change-Id: Ifeeca9271b5055ac773b3b77e372a67e07305130
2017-10-17 11:35:03 -04:00
Doug Schaefer
affb599f24 Allow for changing manually setting toolchains for build configs.
A number of changes that clean up how build configs are done. Now
build settings are stored with the build config instead of in launch
configs. That makes it less launch bar specific. Add build settings
UI to change the toolchain used for a given launch config.

Also changed CMake so it's IToolchain based instead of property which
doesn't work when multiple IToolchains match.

Change-Id: I958d90ede3c1f873ab1530c2b2880808e8f7abef
2017-10-12 16:03:58 -04:00
Doug Schaefer
5228d19300 UI for adding toolchains for Core Build. New Generic Target Wizard.
Provide a way to add new toolchains. Also start of UI to allow for
reordering them to help with toolchain selection for targets.

New Generic Target Wizard for the new wizard2 extension point for the
Launch Bar Target UI.

Change-Id: I60635ab27dad5b69df72c339337473183dcf711a
2017-09-28 13:42:58 -04:00
Doug Schaefer
c3f3da9f25 Core Build - add support for Generic target
Adapts to LaunchBar's new Build Tab extension.

Change-Id: Icad41a7083f4389a546234d2835a9c4b60fa0eae
2017-09-07 15:52:28 -04:00
Jonah Graham
07a9aa0543 Bug 520245: Avoid writing launch files with no changes
On shutdown of a debug session the launch files are written, often
(normally) with no changes. This commit prevents unneeded deltas
on the launch files and prevents a lot of the callbacks of launch
configurations changing. This also ameliorates the case in Bug 500988.

Change-Id: Iddbd9c5c5695dcd2d255cbc761a48316fa5acbb1
2017-07-28 12:00:49 +01:00
Yannick Mayeur
832f7f5a47 Bug 515296: Changed the message when only Address
When the Source Not Found Editor opens with only an address, the message
is changed, to confuse the user less.

Change-Id: I1dcc9fae80d20975b00d2d356469ddda8c2d8d2b
Signed-off-by: Yannick Mayeur <yannick.mayeur@gmail.com>
Signed-off-by: Jonah Graham <jonah@kichwacoders.com>
Also-by: Pierre Sachot <sachot.pierre@laposte.net>
Also-by: Jonah Graham <jonah@kichwacoders.com>
2017-05-09 11:39:06 +01:00
Jonah Graham
655e32bfa9 Bug 516300: Display extension message when creating marker message
Change-Id: I6024d09646fd3f9d828a71f048fcb93fd34ef579
2017-05-08 07:20:30 -04:00
Jonah Graham
2e71430043 Bug 516300: Fix API errors with Eclipse 4.7
- Adding default methods can now be ignored
- Adding fields is now an error but we probably want to ignore this
because it is quite restrictive

This is the same API settings as was applied to org.eclipse.cdt.dsf.gdb
in 02a04cebad

Change-Id: I31559a8a3644c61e415dfbdf6dda3c66fb1d42ea
2017-05-08 06:09:19 -04:00
Alena Laskavaia
32c2e14b80 Fixed copyright
Change-Id: I801f28d73afeba8432283eb9b5e8de3fa9b47a32
Signed-off-by: Alena Laskavaia <elaskavaia.cdt@gmail.com>
2017-05-02 12:41:40 -04:00
Bruno Medeiros
5a71bf21d8 Bug 449104: Enhance Register Grouping for multi processes
This patch adds support to GDBRegisters for persisting the register
group configuration on a per-process/per-core basis. The default
behavior of GDBRegisters is not modified. Instead, subclasses must
override getPersistenceIdForRegisterGroupContainer(IContainerDMContext)
to enable the new behavior, and provide a persistence id that is stable
across launches.

Update: fixed bug in RegisterGroupDescriptor.getContainerId()

Change-Id: I284df3ee215d9a4a9f72f3dca9aba5c16ca4b850
Signed-off-by: Bruno Medeiros <bruno.do.medeiros@gmail.com>
2017-02-28 15:41:10 -05:00
Marc-Andre Laperle
0046099052 releng: Make use of Tycho POM-less functionality
This removes a lot of pom.xml from the source tree. This is using the
"POM-less" Tycho functionality.
See
https://wiki.eclipse.org/Tycho/Release_Notes/0.24#POM-less_Tycho_builds

One advantage of this is that you do not need to update the version in
the pom.xml when you change it in the MANIFEST.MF because the pom.xml is
automatically generated. This also reduces a lot of the duplicated
information and pom.xml repetition.

- Maven 3.3 and up is required.
- Only eclipse-plugins and eclipse-features can be pom-less.
Repositories, target and others still have pom.xml.
- New parent poms are added because a parent is necessary directly one
level above the plug-in/feature that will have its pom generated
- Some test plug-ins had to be renamed .test -> .tests because it's
required so that it detects that it's a test plug-in
- Some suites were renamed so that they all use the same consistent name
"AutomatedIntegrationSuite"
- Profiles were added for the more common test configurations. They are
activated by the presence of simple .properties files that only serve to
activate the correct profile. The profiles:
  - One for UI tests (UI present and start in UI thread)
  - One for SWTBot tests (UI present and do not start in UI thread)
Other test plug-ins that are too different are kept intact and still
have
a pom.xml
- Fragments are kept intact since they all have different target
platform configurations

Change-Id: I9d73380eb766f547830c552daf08053a30b1845c
Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
2017-02-13 23:19:56 -04:00
Marc Khouzam
9286a1a483 Trigger error in Debug plugins when a package is not exported.
Change-Id: I7a76bb65badee7a949e3d0e9abc27ced228e9b7d
2016-12-21 11:54:36 -04:00
Marc Khouzam
8cf5ed53f2 Update version to 9.3.0
Change-Id: Ic953ccc5d38ff3661ca44de21ed8c4b7dad5b246
2016-11-15 20:32:51 -05:00
Marc Khouzam
334777eb6e Update version to 9.2.0
Change-Id: I36ad4218b20b8ea70584c89f5be45c757bf4c714
2016-11-14 23:50:05 -05:00
Doug Schaefer
03051c91ab Implement Qt build tab for the launch config dialog.
Make sure Core Build handles the properties set by these tabs
correctly. A bunch of string externalization too.

Change-Id: I54a61b4d2520a0952c43608169747e792826062e
2016-11-11 16:24:40 -05:00
Doug Schaefer
e9beafae10 Add Local Debug for Core Build launches. Qt Path var for Windows.
Adds gdb launching for Core Build launches. A common class is created
for things common to run and debug (and probably others).

At the bin directory containing qmake to the PATH var for builds and
launches since that's where the DLLs are.

Adds method and variable to GDBLaunch to override the default
environment.

Change-Id: I3ab3b48a2f99eaed50cdb4cfdc03959e9700abc5
2016-11-09 11:40:17 -05:00
Doug Schaefer
e371ba0919 Updates for Core Build.
Change-Id: I8720d5b57e335adde538838790c3ecdd465a7ed7
2016-10-12 19:19:19 -04:00
Doug Schaefer
b26917be90 Introduce Core Build launches and Launch Bar integration.
Unify launching for projects that use the new Core Build system.
Starts with CMake projects. We'll do Qt projects next.

Change-Id: I14af8e99decd54cc6548095b3ad3e054c550aea2
2016-09-12 11:14:17 -04:00
Marc Khouzam
cd559dafaf Update version to 9.1.0
This commit used the script releng/scripts/ChangeFeaturesVersion.sh

Change-Id: I8274a6e8dd5c0f1e450f07952e138b265a441a62
2016-08-17 10:11:57 -04:00
Alexander Kurtakov
240d68cac5 Generify o.e.cdt.debug.core.
Fix warnings about adapters and listener lists not being generified.

Change-Id: If5e54e6df452884947f32a31ef9c0c53677b88c8
Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
2016-07-05 20:15:58 +03:00
Marc Khouzam
f38cbb85c3 Remove old .cvsignore files
Change-Id: Ia66de47055a15d94c0aa45d1198f0a9e78d82ad0
2016-06-30 09:58:00 -04:00
Marc Khouzam
9e1e981b4d Move the rest of the CDT plugins to java 8
This change was generated using the script:
releng/scripts/ChangeJavaVersion.sh

Change-Id: I2ad96dc682a5acb8529c3edec40de279c331b5a4
2016-06-22 14:51:43 -04:00
Stefan Sprenger
2469e0e117 Bug 487998: [breakpoints] Editing code while debug is active
Change-Id: I68361b490a1ba84f0530db37a2da7558c1b762c7
Also-by: Jonah Graham <jonah@kichwacoders.com>
Signed-off-by: Stefan Sprenger <stefan@sprenger.software>
Signed-off-by: Jonah Graham <jonah@kichwacoders.com>
2016-04-27 07:20:42 -05:00
Alex Blewitt
c73978c03a Bug 492210 - Remove ChangeLog files from project
ChangeLog is an archaic format for identifying what has changed in a
project. Fortunately more powerful version control systems are capable
of generating this information and displaying information such as this
paragraph in order to determine what has changed in a project and when.

Change-Id: Ia71a05fa51869c1adb193d94f71c28b3b36beb37
Signed-off-by: Alex Blewitt <alex.blewitt@gmail.com>
2016-04-25 22:53:31 +01:00
Alex Blewitt
12904409a3 Bug 492304 - Fix NLS warnings
Eclipse warns if a String literal does not have a `//$NON-NLS-<n>$`
entry at the end of the line. However, for historic or formatting
reasons, many such occurrences in the CDT source have an intermediate
whitespace, such as `// $NON-NLS-<n>$`

Fix these so that the whitespace is removed between the // and $
characters.

Change-Id: Idc12398fe6e9d619af1d0b1b73fb8b6180da223c
Signed-off-by: Alex Blewitt <alex.blewitt@gmail.com>
2016-04-25 22:53:30 +01:00
Alvaro Sanchez-Leon
e21fc12f90 Bug 489512 - Show local variables in the traditional memory render
Change-Id: I48d633e8f6979fd91e9150856fd77fccffdee299
2016-04-24 21:39:15 -04:00
Alex Blewitt
2356a29c70 Bug 492200 - Replace StringBuffer with StringBuilder
There are many opportunities for replacing `StringBuffer` with
`StringBuilder` provided that the type isn't visible from the
public API and is used only in internal methods. Replace these
where appropriate.

Change-Id: Ic2f50c5b6f3c3a4eae301bb3b40fb6faed235f79
Signed-off-by: Alex Blewitt <alex.blewitt@gmail.com>
2016-04-21 22:17:03 -05:00
Alex Blewitt
fc07efa909 Bug 491825 - Remove primitive wrapper creation
Using `new Integer` and other wrapper types such as `new Character` results in
potential extra heap utilisation as the values are not cached. The built-in
`Integer.valueOf` will perform caching on numbers in the range -128..127 (at
least) using a flyweight pattern. In addition, parsing `int` values can be done
with `Integer.parseInt` which avoids object construction.

Adjust tests such as `"true".equals(expr)` to `Boolean.parseBoolean(expr)`.

Change-Id: I0408a5c69afc4ca6ede71acaf6cc4abd67538006
Signed-off-by: Alex Blewitt <alex.blewitt@gmail.com>
2016-04-16 12:17:48 -04:00
Sergey Prigogin
b91b69775f Bug 491825 - Remove uses of new Boolean and friends
Change-Id: Ie358c8385c278472f3b86851f6fc219007bb9b5c
2016-04-15 15:20:15 -04:00
Jonah Graham
4d53a33882 Bug 472765 and Bug 386675: Deprecate/comment on problem with createPath 2016-04-12 15:23:18 +01:00
Marc Khouzam
a08b9582d3 Add javadoc
Signed-off-by: Marc Khouzam <marc.khouzam@ericsson.com>
2016-03-29 10:34:50 -04:00
Marc Khouzam
6d5e31038c Bug 488661: Simplification of reverse debugging code
Most changes are cosmetics (name of local variables, javadoc, etc).
The note-worthy ones are:

1- Change terminology in IChangeReverseMethodHandler to be a little clearer.
This causes changes in multiple files, but it was all automated.

2- Remove ReverseDebugMethod.INVALID which was used as an error code
and not a ReverseDebugMethod value.

3- In GdbReverseToggleCommand, provide a different error message
if there is a failure to set ProcessTrace vs BranchTrace and tell user what to do.

4- Reworked GdbReverseToggleCommand#getReverseDebugMethod in attempt
to make the code easier to understand.  No actual change in functionality.

Change-Id: Ibdc14faff1220e6a20319644b49e641c2101e762
2016-03-29 08:59:41 -05:00
raddepal
7a73b0035f Bug 488661 - Moving the last trace method to GdbReverseToggleCommand
This patch solves Bug 488661 by moving last trace method to
GdbReverseToggleCommand. Since it is instantiated on a per session
basis.


Change-Id: Idafa196c7af36373ca08d5fc7de63024fe824c2b
Signed-off-by: raddepal <ravitheja.addepally@intel.com>
2016-03-23 08:56:19 -05:00
Jonah Graham
a56abb4783 Bug 472765: use Strings for backend path in Map Entries
Preserve the user supplied backend path as a string so that it matches
what GDB (backend) later reports as a file name to resolve.

Condensed history:

Traditionally in source mapping container, the backend path was stored
as an IPath and that was used to compare against the debug information
being returned by GDB. This worked well when the platform compiled for
matched the platform run on, but when there was Windows/Linux together
that did not work. So as part of Bug 393791 a workaround was done to try
and use hand crafted MapEntrySourceContainer.createPath() instead of
Path constructor to preserve some of the differences. This solution had
its limitations too as UNC paths still could not be represented, See
open Bug 386675.

Change-Id: I4c8f62114a2c6019dc9d07ce446ac424be8b230c
Signed-off-by: Jonah Graham <jonah@kichwacoders.com>
2016-03-19 19:44:19 -04:00
Jonah Graham
a29e37cffc Bug 484900: Cleanup of CSourceLookupDirector post CDI removal
CSourceLookupDirector is internal and had a number of methods only
referenced from CDI.

Change-Id: Ia3052ee5f7009f68984e7b02e7785d76c2c15b0d
Signed-off-by: Jonah Graham <jonah@kichwacoders.com>
2016-03-16 22:42:33 -04:00
Jonah Graham
6283890715 Bug 472765: Use gdb's "set substitute-path from to"
Add support for gdb's "set substitute-path from to" by adding a new
service called GDBSourceLookup that uses GDB to perform the path
mapping.

The new GDBSourceLookup service uses the new GdbSourceLookupDirector to
get the set of paths that need mapping using GDB's "set
substitute-path" and the director resolves compilation path differently
so as to leave the GDB backend to handle the local path to compile path
resolution.

The MappingSourceContainer has been enhanced to allow a per mapping
container override of the new behaviour. This is a fallback as the
default behaviour when using GDB is to use "set substitute-path".

The MappingSourceContainerDialog exposes the new option in
MappingSourceContainer as a checkbox at the bottom of the path mapping
dialog in a backend agnostic way.

The new code is tested in methods called "sourceSubstitute*" and
mirror the same tests for the now non-backend handled version
which are "sourceMapping*". Note that
doMappingAndLaunch/doSubstituteAndLaunch have been updated to explicitly
check or uncheck the setIsMappingWithBackendEnabled setting

Change-Id: I122d7c597cd461d8e38c4f82522ccfdf9e51a5ba
Signed-off-by: Jonah Graham <jonah@kichwacoders.com>
2016-03-16 22:30:51 -04:00
Alena Laskavaia
bb0ba6fd91 Bug 489455 - Add new breakpoint action to run arbitrary debugger command
This is generic support for debugger commands though mi console bridge,
should be not gdb specific (have a simple gdb implementation though)

We add new breakpoint action called "Debugger Command"
Interface allows to enter arbitrary string(s)
This is interpreted by debugger as it see fit
For gdb implementation these are cli commands


Change-Id: I20ca0b8b094c724e1cf8b0691f4f6cab84a3737d
2016-03-16 11:24:20 -04:00
Jesper Eskilson
eac2f92bb4 Fixed warnings: do not call MessageFormat#format(...) with String[].
Change-Id: I3da681e323cfeb0c1c07a669183e6d1d18ca6ff6
Signed-off-by: Jesper Eskilson <jesper.eskilson@iar.com>
2016-03-14 13:41:59 -04:00
Jonah Graham
ff7f25b94d Bug 484900: Remove Majority of CDI classes
This is the first change to remove CDI from CDT. The CDI model
implementation is removed along with everything that directly
depends upon the implementation.

This commit does not include refactoring or moving classes. The few
insertions are the minimum necessary.

Change-Id: I80274e1a0d77bc7bb00a2afe4babc00c4f7613ae
Signed-off-by: Jonah Graham <jonah@kichwacoders.com>
2016-03-08 19:18:05 -05:00
raddepal
5aa4380050 Bug 478740: Changes for supporting Hardware Reverse Debugging
The original toggle button for reverse debugging
has been modified to a pulldown menu for selecting
between hardware and software methods along with all necessary support. 

Change-Id: I2e4d97c46950253986d427cb87cda66b820744c9
Signed-off-by: raddepal <ravitheja.addepally@intel.com>
Signed-off-by: Marc Khouzam <marc.khouzam@ericsson.com>
2016-02-19 10:17:35 -05:00
Sergey Prigogin
728fd554e4 Incremented version of org.eclipse.cdt.core to 6.0.
Change-Id: I059e7eba9eff7f24c84e08a1cbf658381aaaf19d
2016-02-17 10:28:26 -08:00
Marc Khouzam
2ad68f7f80 Update copyright dates
Change-Id: I94ac38c37657e270f62db9bbd2859c2c6de40e5f
2016-02-11 01:50:14 -05:00