"-gdb-set args" is not implemented in lldb-mi, use -exec-arguments instead.
See also https://bugs.llvm.org/show_bug.cgi?id=38834
Change-Id: I1c9db9020effe92dae6ec13e458c3eaf165f920a
Signed-off-by: Marc-Andre Laperle <malaperle@gmail.com>
The underlying issue was fixed in CDT in commit 783787a.
Also, even if that code changes under the rug, lldb might be fixed to handle
the working directory anyway.
See https://bugs.llvm.org/show_bug.cgi?id=30265
Change-Id: I8654ec6c601b49fbfb8258c1a80b95c84021410d
Signed-off-by: Marc-Andre Laperle <malaperle@gmail.com>
Re-arrange the code to prevent done() from being called twice.
Change-Id: I25737e9b6a7c188db62381695562046e326cacd0
Signed-off-by: Marc-Andre Laperle <malaperle@gmail.com>
Turns off doclint for Java 1.8 and greater because the javadocs are
incomplete and won't build otherwise.
Some files also had encoding issues with some characters which caused
the javadoc build to fail, these characters have been replaced.
Change-Id: I04690644bec6d7c3219cb0438cb3db6593fefd3a
Signed-off-by: Hansruedi Patzen <hansruedi.patzen@hsr.ch>
Removed the empty debug.core.tests project. Also removed the
utils-feature and remote-feature projects since these shouldn't
be features.
Change-Id: Ib5d297c626de5328e3421a1fc9346330d9907750
Also restructures the pom.xmls to put the modules in the top level
so we can order them to have the test plugins build after them.
Change-Id: I2f0e4ebd252791fb8844cdf0f635d574946207aa
A few rm.done() calls were missing in overridden methods.
Those queries were slowing down debugging significantly.
Change-Id: I966d79af38721e551e9ebf2a74ca4d8d895241d0
Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
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>
Also set some project specific preferences for save actions.
Change-Id: I8d9c68fd8f7e4a6e9e874e60c12796e2b9b783bf
Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
Mostly organize imports and remove redundant type arguments.
Change-Id: I11e8e76f96a17fa521f3e7f8c8f9e3d645d445b3
Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
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>
The path to GDB is set in the launch dialog, under the Debugger tab. If
the path to GDB contains one or more spaces, and is not within double
quotes, GDB will not be found and the launch will fail.
This patch improves the use cases around the "Browse" button, to select
GDB's path.
1) if the user clicks on the "Browse" button, the browse dialog will
open in the correct place, no matter the presence of space(s).
2) When GDB's path is selected with the "Browse" button, it's then set
in the "GDB debugger" field. This patch looks at the selected path and
adds surrounding double quotes if there is any space within, and strips
any double quotes if there are no spaces.
Change-Id: I202f574772965af3a491d449b9e9a97e8c61e2b0
This commit removes explicit source features and has tycho create them
automatically, along with all other source features that were not
previously defined. The logic to auto-generate is in the root pom.xml
For all pre-existing source feature, the name presented to the user has
been changed to use the default name used by Tycho, which is "Developer
Resources". This will provide a more standard user-experience with
respect to other source features built by Tycho.
Existing SDK features are kept for backwards compatibility.
All the names of the auto-generated source features that replace an
existing source feature have stayed the same except for the
'testsrunner' feature; for that one name change, a p2.inf file is added
to allow upgrading from the old named feature to the new named feature.
Change-Id: Ie632e798c93898fd828f88df4983fc43e2749d22
Prevent users from using a version of lldb that is too old.
Before version 3.8 there was a hang and other issues. If the
version cannot be determined, the launch stil proceeds. This
is because there is no good way to get the version from the
lldb-mi executable but rather, we can only do a best-effort
to get the version from the normal lldb executable. If the
lldb executable is not present but the lldb-mi is, this is a
valid way to use the debugger but the version cannot be determined.
In the future, it would be better if the lldb-mi executable could
report the lldb version directly. But this would be an improvement
in lldb, not CDT.
Change-Id: Ief8a4ebd3ea1e3d549a5cef41ac3030ec48734c4
Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
This commit adds a preference page for LLDB. For now, only LLDB path
and the "stop at main" preferences are exposed.
Bug: 405670
Change-Id: I4ba30fdb48ecd0cdfc6e3aac35fe0de38563c354
Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
This commit adds support for debugging new processes launched locally
using the LLDB debugger (lldb-mi). The minimum version supported is
LLDB 3.8.
Preliminary documentation on how to set it up is available here:
https://github.com/MarkZ3/Eclipse-CDT-WIP/issues/9#issuecomment-236483223
Bug: 405670
Change-Id: If46543e974e2f19c45ab3bba088eab35fe737077
Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
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>
In many cases a String's empty status is tested with `.equals("")`.
However, Java 1.6 added `.isEmpty()` which can be more efficient since
it compares the internal length parameter only for testing. Replace
code using the `.isEmpty()` variant instead.
Some tests for `"".equals(expr)` can be replaced with `expr.isEmpty()`
where it is already known that the `expr` is not null; however,
these have to be reviewed on a case-by-case basis.
Change-Id: I3c6af4d8b7638e757435914ac76cb3a67899a5fd
Signed-off-by: Alex Blewitt <alex.blewitt@gmail.com>
- Fix LlvmEnvironmentVariableSupplier.getDirIfLlvmFound method
which was not bothering to look for llvm-ar in the user's path
because it would only set its internal llvmPath variable if
directories ended in '/' or if a subdir was provided which is
not the case for it being called from LlvmToolChainSupported
- set the llvmPath to the candidatePath at the beginning so the
test will be performed
Change-Id: I4b93fb3e569c32cff580c57dbedbe730dbbe057e