This is a mechanical replacement for the former executable, processArgs,
inferiorEnvironment and workingDirectory members.
Change-Id: I4160e01427ed801df9b729f1f31d0a2ca48159b5
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
The following message was observed when debug session is done:
Warning: STUB EXITED EXPECTEDLY (no active run control)
Change-Id: I21778dd70659a0fe4105c386e1e1693a8b81ac05
Reviewed-by: hjk <hjk@theqtcompany.com>
Newer versions of Qt can evaluate expressions without pausing the
QML engine. We can take advantage of that. At the same time we can
remove the crutch of using QQmlEngineDebugService for this. The
latter produces inconsistent and generally worse results than the V4
debug service.
Task-number: QTCREATORBUG-14931
Change-Id: Ic78d08a0b00cf7de3911b7b672ce229c6d779363
Reviewed-by: hjk <hjk@theqtcompany.com>
Don't instantiate repeating boilerplate item data in some
cases (such as large arrays).
This makes it necessary to access parent WatchItems in
a lot more cases than before and needs another separation of
WatchItem/WatchModel code to keep the dumper autotests
in a functional state.
For a plain std::vector<int> with 1 mio items this reduces
extraction time from more than 2 minutes to about 3 seconds.
Change-Id: I175c5f6ee90434a6e85342d8bb71bd10a04dd271
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
Debugger and stub run locally, the debugged process not necessarily.
Change-Id: Ibf6aec3dcaec60069866ec0765ec2178ca0a26d6
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Now it is closer to its only user and possibly reusable for no-QML uses
there. We also drop the QML/JS syntax checker. The application being
debugged can already tell us about syntax errors. There is no need to
duplicate that functionality.
Change-Id: I2ba151f9f4c854c6119ba5462c21be40bddcebf9
Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
Reviewed-by: hjk <hjk@theqtcompany.com>
- Remove old experimental native mixed approach.
- Move some common stack parsing to Stackhandler.
- Mark gdbbridge.py debug output explicitly to remove it
from actual reponse handling
New native mixed needs QtDeclarative changes and
QTC_DEBUGGER_NATIVE_MIXED=1 for now.
Change-Id: I09eed1da51cea878636d36756015b7bfaed34203
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Using Utils:TreeView automatically gives us the capability for loading
item as they are expanded. This way we can show recursive structure in
the console as well as load data from the debug server on demand.
Also, properly print error messages received from unsuccessful
command evaluations.
Task-number: QTCREATORBUG-14931
Change-Id: I66d440eedd9723b04670169b27db1ee18f3f2891
Reviewed-by: hjk <hjk@theqtcompany.com>
... and use it to toggle breakpoints by file and line,
and for jumping to file and line.
Task-number: QTCREATORBUG-14278
Change-Id: I799d085eb53339905ea3608022aeae5a9aef1fda
Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
... after deletion. The breakpoint itself was actually removed from
the breakpoint view but the red blob stayed until the next update
(e.g. after the next 'step')
Change-Id: I120059a6e643df7c104a8f6d96e09b9c707d14d8
Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
... to engines that actually support JumpToLine and make it
work in disassembler views.
Change-Id: I10368ea719587caa7c4f33665eff57c2bf300d84
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Issue a DebuggerEngine::executeJumpToLine() in response.
Change-Id: I7be5738241ce91f61002d6f6b49c796824569024
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
There are two cases that do not coincide in asynchronous
engines such as the QmlEngine: Inserting a new watch item,
and expanding the children of an existing item.
Change-Id: Ic98a5f1e89aca37146039a241de737c407606e83
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
This removes the need of bookkeeping on the engine side. It's
basically a kind of mark-and-sweep: On update begin mark items
that are expected to change as outdated, while data arrives, undo
that marking, and update end remove all remaining marked items.
Change-Id: I739b84869033d511d5c9a80605c079e87ef4f6a7
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
One can be triggered by regular operation, the other one is
effectively checked by the compiler.
Change-Id: I82613bbba26ccc947c2745dbde11e7ac89c1a468
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
It's again a linear process now, with explicit entrance point for
all users.
Task-number: QTCREATORBUG-14618
Change-Id: I96c08947270ce34d7bc6c8be1d7f350dbfa14794
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
This was it also gets triggered when expanding tooltips.
Change-Id: I90ad39e9e82abdcd40e663b4ba4998205563009b
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
There are now several possible orders of events between sending a 'kill'
and receiving something that indicated a properly shut down inferior.
Coordinating the InferiorExited state during engine ramp down is not
worthwhile as that state had only a forced transition to InferiorShutdownOk
anyway. For the user (and user code), only the fact that ramp down is
finished is interesting.
Change-Id: Ic22131d5a1066dc62bd069f532c28b773f231088
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
In order for plugins to create their own local DebuggerRunControl
without the need to copy lots of code, the
fillParametersFromRunConfiguration is introduced and exported.
Change-Id: I50edc3f6f048a9f34e358b4104ef75c94c74dbb8
Reviewed-by: hjk <hjk@theqtcompany.com>
Reviewed-by: Benjamin Zeller <benjamin.zeller@canonical.com>
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
This splits the bool setToolTipExpression() operation into
a bool canHandleToolTip(), and the actual processing of
the request, which is mostly identical to the handling of
a watcher.
Handling a watcher is now mostly the same as a full Locals
update, except for the 'partial' flag. Pushing the handling
of that down to the bridges gives identical code paths
in the gdb and lldbengine. Move that to the
DebuggerEngine base class.
Change-Id: I3861b43e8630c7e7bd57fcd549b2a2387e3d4869
Reviewed-by: hjk <hjk@theqtcompany.com>
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
The original use case of running GDB itself remotely
is not present anymore.
Change-Id: I283a27216d6a8849fea7d9ca8df6b94571fb99fd
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Fixes also the recent regression due to slicing when attaching
to a running application.
Change-Id: I6a7712811d6820b0c57658db10c5ff9790b4a338
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
Right now, DebuggerStartParameter is part of the debugger plugin
external interface. Better not make it fatter than necessary.
Change-Id: I3b9205089f971dd314ccba1335b5ca2d4d9fe7c6
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
Also adding a color for each category.
Change-Id: I3627d13913951a95804b5a816f087a822c01bd86
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
This is just a workaround to avoid the warning of having a release
build although building debug. In practice the validation should
be done on the main library instead of the app_process of an
Android executable.
Change-Id: I4fe4ccc790d9e373a11f851c8216362188a97b85
Reviewed-by: hjk <hjk@theqtcompany.com>
Move common code to dumper.py and debuggerengine.cpp and
fix it there.
Change-Id: I20d91d1aa7400fbdb27938c10cf40c8f6019df0a
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
... in WatchHandler and DebuggerEngine interface.
Adjust using code.
Change-Id: I6371f3e96ba46a783e23a5767cdde24a10d3fce7
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Reviewed-by: hjk <hjk@theqtcompany.com>
Added full stops to ends of messages.
Used book-style capitalization for message box titles.
Wrote "operating system" in lower case.
Change-Id: I8cee1a1c7f4ae55952daa507395845feae203ab9
Reviewed-by: hjk <hjk@theqtcompany.com>
The only information ever used is whether it's c++ or not.
Change-Id: I4ca00663856dd66cbdf58c468f175a8c9e41d6a5
Reviewed-by: hjk <hjk@theqtcompany.com>
Only needed in the non-Python days. CDB didn't use it to start with.
Change-Id: Ia609218cc1a694f797e278c4d99ead68e6212938
Reviewed-by: hjk <hjk@theqtcompany.com>
Seeing an ill engine while trying to stop means that the stop failed.
Also, a finished master engine doesn't need further updates.
Task-number: QTCREATORBUG-14089
Change-Id: Icd5b090dfcdc0875953d8756a909b1405e05f71f
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
This also removes some of the "illegal" state transitions,
partially addressing QTCREATORBUG-14089.
Change-Id: I817d87a0b5e0a40285bc9b0880fef5bceaee3f16
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
C4267: 'initializing' : conversion from 'size_t' to 'int', possible loss of data
Change-Id: I91979c685bbbd84359f7f4e19911a21a408f5d23
Reviewed-by: hjk <hjk@theqtcompany.com>
Mostly done using the following ruby script:
Dir.glob('**/*.cpp').each { |file|
next if file =~ %r{src/shared/qbs|/qmljs/}
s = File.read(file)
s.scan(/^using namespace (.*);$/) {
ns = $1
t = s.gsub(/^(.*)\b#{ns}::((?!Const)[A-Z])/) { |m|
before = $1
char = $2
if before =~ /"|\/\/|\\|using|SIGNAL|SLOT|Q_/
m
else
before + char
end
}
if t != s
puts file
File.open(file, 'w').write(t)
end
}
}
Change-Id: I1aa1a2b6ccbafeb1a8f3053fffa39b3f96992591
Reviewed-by: hjk <hjk@theqtcompany.com>
This is experimental for now and requires QTC_USE_PTY=1
in the environment to be used.
Change-Id: I460ce7b9283467d481e903f731f4243b7e5ec094
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@theqtcompany.com>
Reviewed-by: hjk <hjk@theqtcompany.com>