Before this change, we had to remember to edit the config.ini every time
a dependency was modified in debug.product. This change introduces a
script during the build that generates the config.ini with the same list
of plugins specified in debug.product.
The cdtdebug.sh start-up script was simplified in the process because
the config.ini includes all platform-specific plugins now and they just
won't get loaded if they are not a match for the environment.
Change-Id: I658b0dd8688088e203966a154e6154f1b2c851f4
Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
When building o.e.cdt.repo we used to delete the
entire directory in which we put the build result. However, it is
possible that the Standalone debugger was built before o.e.cdt.repo and
already put the valid rcp and rcp-repository directories in that
location. We therefore should not delete those.
Change-Id: I5d1608bceb48633f2205af8f8282e884ff223351
From my experience, bad things happen if the user specifies a
non-absolute path in the box labeled "Remote Absolute File Path for
C/C++ Application". This patch adds a validation to the tab to make
sure that the path is a valid absolute POSIX path.
This assumes that we do not support remote launching on Windows targets,
and therefore do not need to specify paths such as "C:\foo\bar.exe".
Change-Id: I20367078ff20179f0515272afee17d0986940309
Signed-off-by: Simon Marchi <simon.marchi@polymtl.ca>
Instead of calling "chmod +x" by hand, use IFileStore.putInfo to set the
file attributes. Since we already use the IFileStore API to copy the
file, it makes sense (and it's cleaner) to use it to set the executable
attribute as well.
In most cases, it wouldn't be needed to make the file executable, since
it should already be on the host filesystem and IFileStore.copy
transfers the attributes. However, it's still good to force it
executable in case it's not already for some reason.
Change-Id: I4c86e36265962781d4541aaceeb40b502248f674
Signed-off-by: Simon Marchi <simon.marchi@polymtl.ca>
A new plugin is required since the last 4.7 milestone build.
Change-Id: Ibf0bb9bc3ed7858dca67782051f53d81c5ace915
Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
This has two parts.
1) In the base test itself check that the executor is shutdown.
2) GDBBackend leaves a timeout job on the executor queue, remove
it proactively so the executor doesn't sit around just waiting
for it to terminate.
Change-Id: I9fc10f70031430f4613e0edc95093a60cf695e90
Signed-off-by: Jonah Graham <jonah@kichwacoders.com>
Running to different points of the test program using line tags is
easier and safer than stepping a certain number of times. Since I want
to modify this test to add a pointer-behind-typedef test, I thought it
would be good to first convert it to line tags.
I also took the liberty of giving more meaningful names to the structure
fields, even though it doesn't change anything in the test.
Change-Id: Ife7e2ae8557789dfc7403df71ba5126ca84b80e0
Signed-off-by: Simon Marchi <simon.marchi@polymtl.ca>
Modify MIExpressionsTest.testUpdateOfPointer so that it only uses
synchronous methods. There is no change of behavior intended, the test
should do pretty much the same thing as before, but should be a bit more
readable.
One difference is that we don't need to re-create the
IExpressionDMContext objects when we want to re-evaluate the
expressions (after stepping the 2nd time). We can just call
getExpressionValue on the again, which will trigger a -var-update.
Change-Id: I09bb914b097888bf3146df0096eb9d824441ffa8
Signed-off-by: Simon Marchi <simon.marchi@polymtl.ca>
As deleting launch configurations has a race condition that can
cause them not to become undeletable, only delete them for the tests
that they really need to be deleted for.
Change-Id: I040cbc83ba29a9f3a791b0bf4348a3179792ec65
Signed-off-by: Jonah Graham <jonah@kichwacoders.com>
CPPTemplateNonTypeArgument.getNonTypeValue() passing null to
ICPPEvaluation.getValue()
Stopgap measure to protect against NPE.
Change-Id: I1f34a219f982eec3703dc82ef54996a4c454568f
Added a check on the parseEnvironment() method to store keys in upper
case if the platform is windows
Added a method to fetch a property directly from the fEnvironment or
using the EnvironmentReader class instead of fetching the map and
redirecting the call to that map. This would ensure normalization as the
getEnvVar(key) is implemented to use the normalized map.
Bug: 447643
Change-Id: Ic664d81781f80663ce18854209077a2f38ec7c3a
Signed-off-by: Ghaith Hachem <ghaith.hachem@bachmann.info>
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>
This patch converts RemoteHelper.remoteFileDownload to use SubMonitor
instead of the deprecated SubProgressMonitor.
The remoteFileDownload operation consists of two sub-operations, to
which I assigned the following weigth:
- Download the file to the target (95%)
- Change the permissions (5%)
Ref: http://www.eclipse.org/articles/Article-Progress-Monitors/article.html
Change-Id: I8336f8e853e811a4350f1a63ba64934121ace5d8
Signed-off-by: Simon Marchi <simon.marchi@polymtl.ca>
LLDB-MI sends an extra event when -gdb-exit is used, which
triggers this assertion:
629,511 [MI] 35-gdb-exit
629,514 [MI] 35^exit
629,514 [MI] =thread-group-exited,id="i1"
For now, work around LLDB-MI bug, see
http://bugs.llvm.org/show_bug.cgi?id=32053
Change-Id: I1c8e7fee118b5bc31e08272c79aa806fe05b7c95
Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
When a toolchain is selected along with its builder, the builder gets
matched to a “real builder” (ManagedBuildManager.getRealBuilder). If the
builder is abstract, the builder is not in the possible list of matches,
as implemented in Builder.getMatchKey. This causes
getCurrentBuilderCompatibilityInfo to return null which is not handled.
This patch changes the base LLVM builder to a non-abstract one, which
solves this specific NPE.
Also, in order to be more helpful to the user in case it happens to
another toolchain, a null check was added with an error message that the
builder is incompatible. Then at least, it is more clear that something
is wrong and the user can pick a different builder.
Change-Id: I4d26c568dfe6307b496719c10908a36933fd3ab8
Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
This also fixes some ClassCastExceptions caused by types which
implemented ICPPASTInitializerClause but not ICPPEvaluationOwner.
Change-Id: Ie624865ebe476fe760dc28e02b6aef8a43b4c621