Commit Graph

107 Commits

Author SHA1 Message Date
Tobias Hunger
b2df065b56 Use distinct ABIs for MSVC versions
Use a distinct ABI OS flavor for each of the supported MSVC versions.

Task-number: QTCREATORBUG-4129
2011-03-21 15:46:42 +01:00
Friedemann Kleint
0ae94ffc4d Debugger[CDB]: Fix breakpoint context menu for CDB.
Immediately report known data back when settings breakpoints
so that line number/enabled is correct in the handler.
2011-03-16 13:39:58 +01:00
Friedemann Kleint
9771cdbf9d Debugger[CDB]: Fix warning about invalid breakpoint on 'step out'.
Do not display internal breakpoint id=10000.
2011-03-16 11:55:24 +01:00
Friedemann Kleint
53cbf5dfae Debugger[CDB]: Use standard shutdown path within QML/CPP debugging.
As the InferiorShutdown-State is required to synchronize the
engines.

Task-number: QTCREATORBUG-4026
Initial-patch-by: Kai Köhne <kai.koehne@nokia.com>
2011-03-14 11:43:33 +01:00
Friedemann Kleint
fcdbdcaee0 Debugger: New breakpoint types in CDB.
Emulate exec() by breaking on CreateProcessW().
2011-03-07 11:02:07 +01:00
Friedemann Kleint
82cf8b46bc Debugger[CDB]: Do path mapping in both directions.
For breakpoints and reported stacktraces. Make mapping more precise,
check for slashes.
2011-03-07 09:24:44 +01:00
Friedemann Kleint
f6ccdfb2cd Debugger[CDB]: Add source mapping in stack parser. 2011-03-04 17:29:15 +01:00
Friedemann Kleint
ae3115502c Debugger[CDB]: Suppress WOW86 exceptions while stepping. 2011-03-02 13:44:05 +01:00
Friedemann Kleint
fa4dc9ffa6 Debugger[CDB]: Fix run/jump to line for assembly code. 2011-03-01 16:47:02 +01:00
Friedemann Kleint
562265d58c Toolchains: Header cleanup. 2011-02-28 16:50:14 +01:00
Friedemann Kleint
e8d12ae464 Debugger[CDB]: Add memory editing.
Add infrastructure for custom special stops with data.
2011-02-28 14:34:42 +01:00
Friedemann Kleint
e5e202a96e Debugger[CDB]: Do not set empty environment for 'Start external'. 2011-02-28 11:48:33 +01:00
Friedemann Kleint
88f333267f Fix Krazy code scanning tool warnings (QString, loops, spelling). 2011-02-25 15:28:01 +01:00
Friedemann Kleint
14d590590f Debugger: Use Startparameters.debuggerCommand for command.
Use in both engines preferred over ABI if it is compatible.
Report start parameters. Introduce gdb configuration check.
2011-02-25 13:43:06 +01:00
Friedemann Kleint
047ee5522c Debugger: Improve configuration error reporting.
- Make showWarningWithOptions actually show the details.
- Show errors from multiple engines as separate messages.
- Remove 'enabled' option from CDB (handled by toolchain config now).
- Show ABI as tooltip in debbugger toolchain chooser.
2011-02-25 09:34:31 +01:00
Friedemann Kleint
75f4b9cf25 Debugger: Add toolchain combos to start dialogs, refactor detection.
Add combo box listing toolchains with debuggers to start external,
attach and core.
Another attempt at streamlining engine detection:
Split in detection functions that first collect a list of
available engines by preference, then remove disabled and
wrongly configured engines and use the remaining best.
matching. checkconfiguration is now the central place where
engine detection and config check takes place.

Rubber-stamped-by: hjk
2011-02-24 16:50:15 +01:00
hjk
a8ae618d75 toolchain: fix enum naming style
Reviewed-By: Tobias Hunger
2011-02-23 17:56:33 +01:00
Friedemann Kleint
fa6fbcc83b Debugger: Choose right binary for CDB/gdb. 2011-02-23 16:56:14 +01:00
Friedemann Kleint
6ac7efba15 Debugger: Move debugger executables configuration into toolchains. 2011-02-23 14:57:52 +01:00
hjk
5f38a26c9e debugger: fix 'Jump To/Run to' when in instruction-wise mode 2011-02-23 11:11:39 +01:00
Friedemann Kleint
ef78845474 Debugger[CDB]: Disable WowX86 breakpoints using 'sxn'. 2011-02-23 08:54:24 +01:00
Tobias Hunger
8d0c477245 ToolChain: Refactor toolchain support
Refactor ToolChains in Qt Creator:

 * Allow for several toolchains of the same type
 * Be smarter wrt. guessing what kind of output a toolchain
   produces. This allows us to eventually handle e.g. embedded
   linux setups way better than before.
 * Be smarter wrt. guessing what kind of environment a Qt version
   needs.
 * Improve auto-detection of toolchains a bit
 * Decide on which debugger to use based on the kind of output
   produced by the compiler.
 * Add options page to configure toolchains
 * Remove toolchain related options from the Qt version dialog

Reviewed-by: dt
2011-02-21 18:33:23 +01:00
Friedemann Kleint
cbafc50acc Debugger: Make tooltips use standard text editor tooltips.
Extend text editor tooltips by a 'widget content', making
it possible to show any widget utilizing the fact that the
QTipLabel actually is a frame (and thus a container).
Introduce concept of 'interactive' tooltips and modify
the tooltip-closing mechanism such that simple interaction
is possible. Emit the base text editor's tooltip signals
with the correct position and add API to calculate the tooltip
position from the cursor position.
Add API for pinning tooltips to the text editor (by removing
them from the QTipLabel layout).
Modify the Debugger's tooltipmanager not to manage tooltips
under TextEditor control and to take over control only once
tooltips are pinned.

Rubber-stamped-by: Leandro T. C. Melo <leandro.melo@nokia.com>
2011-02-21 16:51:00 +01:00
Friedemann Kleint
c74da9b7c5 Debugger: Reduce tooltip flicker.
Move tooltip-request handling from DebuggerPlugin into
DebuggerToolTipManager.

Request tooltip only if position changed and close
standard tooltip on success.
2011-02-17 10:11:23 +01:00
Friedemann Kleint
0255cb639a Debugger[CDB]: Fix stepping.
Started out in assembly mode, regression introduced by
a9982cac70
(Debugger[CDB]: Enable engine restart)
2011-02-16 14:15:44 +01:00
Friedemann Kleint
0ac879e39f Debugger: Make tooltips pinnable.
Replace old debugger tooltip by a new ToolTipManager which
has a list of AbstractDebuggerToolTipWidget with the functionality
to 'acquire' an engine (display its data) and 'release' it
(store engine data and display them as 'previous') and serialization
to XML session data.
DebuggerTreeViewToolTipWidget implements AbstractDebuggerToolTipWidget
for tree model acting as  a filter on watch models.

Rubber-stamped-by: hjk
2011-02-11 15:09:02 +01:00
Friedemann Kleint
170d64b016 Debugger[CDB]: Improve exit handling. 2011-02-08 13:00:08 +01:00
Friedemann Kleint
a9982cac70 Debugger[CDB]: Enable engine restart. 2011-02-08 12:08:59 +01:00
Friedemann Kleint
3a100e8d7c Debugger: Make breakpoint capabilities more fine-grained.
Handle in editBreakpoint().

Acked-by: hjk
2011-02-07 11:05:30 +01:00
Friedemann Kleint
4d46c69d25 Debugger: Documentation work on qtcreatorcdbext/Debugger.
Add comments, introduce internal switch in
doc/api/qtcreator-api.qdocconf.
2011-02-04 15:10:17 +01:00
Friedemann Kleint
91ead6c818 Debugger[CDB]: Refactor breakpoint handling.
Add a command to list breakpoints enabling id access.
Implemented breakpoint handling similar to gdb using breakpoint
ids (no longer delete and re-set all breakpoints on a change).
Save the module that is reported back in the session so that
it can be re-used for the next start. Keep a per-debugger-session
cache of fileName->Module for adding breakpoints to accelerate
setting breakpoints in the same file.
Polish the breakpoint tooltip.
2011-02-03 16:26:23 +01:00
hjk
c23274574c debugger: code cosmetics 2011-02-02 12:43:53 +01:00
Friedemann Kleint
37e93319b4 Debugger[CDB]: Set working directory. 2011-01-27 11:47:59 +01:00
Friedemann Kleint
3f3ad561c7 Debugger[CDB]: Reduce roundtrips when stepping.
Report threads and frames along with stopped notification.
Change special logic for step into and switching threads
on interrupt accordingly.
2011-01-25 18:35:31 +01:00
Friedemann Kleint
bc30185bed Debugger[CDB]: Show expandable tooltips.
By setting a filter model on the locals model.
Prepare infrastructure for filter models for pinneable
tooltips in debuggertooltips.
2011-01-25 13:59:25 +01:00
Friedemann Kleint
e46590390e Debugger[CDB]: Prevent debugger log from showing.
caused by overlapping flags and thus 'Stop at breakpoint'
being reported as an error.
2011-01-25 11:53:47 +01:00
Friedemann Kleint
c1228d0c67 Debugger[CDB]: Add setting for additional command line arguments.
to CDB, allowing for extensions, etc.
2011-01-19 13:01:50 +01:00
Friedemann Kleint
3af8188784 Debugger[CDB]: Use Qt Creator console stub instead of CDB console.
As the latter immediately closes after the debuggee quits.
Handle pressing Ctrl like DebugBreak(), switch to thread 0.
2011-01-19 10:25:32 +01:00
Friedemann Kleint
cd3b6c7b23 Debugger[CDB]: Switch to thread 0 after DebugBreak().
Do not show artificial thread that is created by
DebugBreak() as it causes a switch to disassembly.
Forcibly discard the symbol group for each locals
update as the lazy creation mechanism does not trigger
on thread changes back and forth involving assembly,
which causes the symbol group to become stale.
2011-01-18 15:34:58 +01:00
Friedemann Kleint
11c6ca71ac Debugger[New CDB]: Add support for "Select Widget to Watch".
in stopped state. Add helper for executing calls
to ExtensionContext including recording of output in
OutputCallback. Extend symbol resolution to return addresses
as well since QApplication::widgetAt() is ambiguous and needs
to be called by address. Add 'widgetat' extension command
to return the widget.
2011-01-18 11:40:45 +01:00
Friedemann Kleint
8108bb0c89 Debugger[New CDB]: Ignore only first WOW64 breakpoint.
Subsequent ones are caused by interrupts.
2011-01-17 15:18:13 +01:00
Friedemann Kleint
3a87af8ada Debugger[New CDB]:Introduce watches infrastructure.
- Move the 'current module' into the Node
- Split symbol group hierarchy into LocalsSymbolGroup
  tied to frame/thread and a separate, scopeless
  WatchesSymbolGroup
- Add infrastructure for removing symbols from a SymbolGroup,
  doing the index bookkeeping.
- Add method to synchronize watches to  WatchesSymbolGroup
  (iname/name map).
- Introduce watches commands for adding and dumping.
- Extend locals command to get watches as well.
- Add a dummy 'ErrorSymbolGroupNode' to use in case
  insertion fails.
2011-01-14 16:53:05 +01:00
Friedemann Kleint
56bbd4adca Debugger[New CDB]: Fix output format. 2011-01-13 14:27:52 +01:00
Christian Kamm
49655d622d debugger: Slightly improve compile fix for linux.
Reviewed-by: Friedemann Kleint
2011-01-12 14:21:44 +01:00
hjk
9f6e0091b8 debugger: compile fix on linux 2011-01-12 14:18:20 +01:00
Friedemann Kleint
a60b3f6746 Debugger[New CDB]: Improve 32bit debugging on 64bit systems.
- Ignore WOW64 breakpoints. Restructure code to examine stop reason
  before notifications to be able handle special stop reasons
  in a simpler way.
- Fix autodetection to look into %ProgramFiles% (x64) as well.
2011-01-12 13:51:33 +01:00
hjk
6dd55aa471 debugger: introduce generic master/slaves engine 2011-01-12 12:17:47 +01:00
con
d1023c7614 It's 2011 now.
Reviewed-by: hjk
2011-01-12 09:46:24 +01:00
Friedemann Kleint
b74ecbdb5a Debugger[New CDB]: Update all variables on assignment.
Some documentation/comment changes.
2011-01-11 14:58:32 +01:00
Friedemann Kleint
7ff4b1fec2 Debugger[New CDB]: Get rid of postfix '2' in file names/classes. 2011-01-11 11:22:55 +01:00