When a new launch is triggered and a new GDB console created, it was
shown automatically. However, if there was a current debug session
where the selection was a stack frame, our sticky policy
(DefaultDsfSelectionPolicy) prevents the new session from being
selected, so the new GDB console shown didn't match the selection in the
DV.
With this patch, when a new GDB console is created, we don't show it
automatically, but let other logic figure out if it should be shown or
not.
Change-Id: If826677a6fb0f925f6b397a13f61fc75fc892748
Make sure Core Build handles the properties set by these tabs
correctly. A bunch of string externalization too.
Change-Id: I54a61b4d2520a0952c43608169747e792826062e
This adds a new service, GDBFocusSynchronizer, that helps keep the
internal GDB selection and the Debug View selection synchronized.
Change-Id: I021b3f65d61e82f6971bdb9232369b6fdf58ea5b
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
The DebuggerConsoleView may be interfering with other views while
bringing it to the top. This is not desirable as many users may not need
to access the features of the GDB CLI.
With this change the view will be shown but not automatically brought up
to the top, so users can find it and select it as needed.
Change-Id: I6a26f3a39d43732659d1db4e1aeb77f3c9e399d9
Signed-off-by: Alvaro Sanchez-Leon <alvsan09@gmail.com>
IDebuggerConsoleManager.showConsoleView() was mimicked on
IConsoleManager.showConsoleView() which allows to specify which console
in the view should now be shown.
This makes sense for the generic platform Console view where extenders
could choose to display any kind of console when an event happens (e.g.,
a build console when the build is started). However, in our Debugger
Console case, it complicates things unnecessarily. In our case, we want
to be able to open the view, but the console to show is handled by other
logic such as a synchronizer service.
And if there is a need to change which console should be shown within
the Debugger Console view, then IDebuggerConsoleView.display() should be
used. I think having it in IConsoleManager.showConsoleView() is a
shortcut that is not very useful in our case.
Change-Id: Id66ea5c953e8a7ab603cfc23789a814c1ad821d2
According to the javadoc of
IDebuggerConsoleManager.showConsoleView(IDebuggerConsole), the specified
console should be made visible when this method is called. Our
implementation was not doing that.
The PageSwitcher used in DebuggerConsoleView is making use of that call
and was not working properly. One can verify this by using the
"Next Page" key binding to change console pages. It works in the
platform console but did not in the Debugger Console.
This patch fixes it.
Change-Id: I0caa94c85e5c9dbbd94d80081c7b4691c17d9582
Also include the latest version of plugins when launching
(tail vs head). This makes a difference when the plugins were
updated.
Change-Id: Id97c9247f0507e177592ca3631348bf8f7fd3dbf
Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
I can't figure out why it's failing in a reasonable amount of time
and it's been failing for a while now.
Change-Id: Ib9bec67a3b628d834c3d7cdfcb088fb10ebea1b7
Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
The streams connector provided by TM was located in the o.e.tm.view.*
plugins which bring in the terminals view. This patch implements our
own streams connector so that we don't have this extra dependency.
Change-Id: If2a8bdfbdd87eb9ec5c42180a372634e322ba1c1
Unify launching for projects that use the new Core Build system.
Starts with CMake projects. We'll do Qt projects next.
Change-Id: I14af8e99decd54cc6548095b3ad3e054c550aea2
Making this change reduces richness of such a console with respect to
menus, toolbar, etc. However, I think the consistency is more
important. Besides, this old gdb console is so poor, I don't expect it
was used much.
Change-Id: I28870192dd51c673f35d6147d5196bc771ebfa55
Splitting out the GDB console into its own Debugger Console view.
The goal of this patch is to allow the user to easily keep the full GDB
console in focus, without having to pin it, as the pin requirement was
not very user-friendly. Furthermore, the user can also use the GDB
console while looking at the output of the program being debugged,
which couldn't not be done without a dedicated gdb console view.
This patch also resolves two issues we had with re-using the platform
console view, which were:
- pin didn't work
- clone didn't work
With this new Debugger console view, there is no pin and no clone.
Change-Id: Ia19132704a2f6618f35ffe47ebb4b8f0028dc9ab
This patch provides a full GDB console in the standard Console view.
The full console is disabled for Windows due to PTY limitations.
The new console will be triggered automatically when using GDB 7.12 (or
its pre-release) and running on Linux.
Known issues with this patch:
- Cloning the console view breaks the console
- Pinning the console view is not supported
- Interrupting execution in all-stop mode fails with the new console
- Pagination causes some events to be lost (all-stop only)
Change-Id: Iee6ef5228ca17bd829eb743cb41a142afe6714dc
Reads the compile_commands.json file and feeds the commands into
the processLine method of the build config which creates the scanner
info. The scanner info is cached in memory and stored in the
metadata directory.
Change-Id: I8b04e661dfe767904d1c10119c07167fee8cd7e4
Fixed up CMake new project creation. Hooked up the CMake build config
properly.
Introducing the New C/C++ Project Wizard that hold all the new project
types: Arduino, Qt, CMake.
Change-Id: I9f9c8b1f51b136515fe226c15059cdbb99106275
Fix warnings about adapters and listener lists not being generified.
Change-Id: If5e54e6df452884947f32a31ef9c0c53677b88c8
Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
This will help give a clue where is hangs when running on Hudson
Change-Id: If72db5e9d4ac387328074071ab3eacf33d81ca9c
Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
The mac signing has to happen between materialize-products and
archive-products goals. Because we only want to do it when the
production profile is enabled (eclipse.org server), we have to duplicate
some xml to fit the macsigner between the two. I did extract some
variables in order to make the duplication less error prone.
Change-Id: I523c287c0e1dff15026e1007fa2831af6d14003a
Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
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>
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>
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>
When using a `StringBuilder` or `StringBuffer` to create a string message,
using implicit string concatenation inside an `.append()` call will
create a nested StringBuilder for the purposes of creating the arguments,
which will subsequently be converted to a String and then passed to
the outer StringBuilder.
Skip the creation of the intermediate object and String by simply
replacing such calls with `buffer.append(a).append(b)`.
Where values are compile time String constants, leave as is so
that the javac compiler can perform compile-time String concatenation.
Ensure that NEWLINE isn't appended in such a way since it is not
a compile time constant `System.getProperty("line.separator")`
Change-Id: I4126aefb2272f06b08332e004d7ea76b6f02cdba
Signed-off-by: Alex Blewitt <alex.blewitt@gmail.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>
- Wait until binary file exists after building instead of sleep
- Replace waiting loop with waitUntil methods with bigger timeouts
- Replace menu detection with faster and more reliable method:
- Find menu items in specific shell
- Use waitUntil with small timeout to detect absent menu items
Change-Id: I5239fa5dab9e091936addf6ceb9ef05095d23bd3
Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.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>
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>
MappingSourceContainerBrowser has long since replaced
with NewMappingSourceContainerBrowser.
PathMappingDialog has long since replaced
with MappingSourceContainerDialog.
Change-Id: I67bd6640d5e75608c9b3d616285914987ff38f98
Signed-off-by: Jonah Graham <jonah@kichwacoders.com>
A bug was fixed in SWTBot and it doesn't throw
IndexOutOfBoundsException anymore. A test was relying on that.
Change-Id: I807aaa773b8544172cf33cbf1a04583fe171bd51
Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>