aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/debugger/breakhandler.h
Commit message (Collapse)AuthorAgeFilesLines
* Debugger: Use the pathUsage parameterMarcus Tillmanns2023-06-091-1/+3
| | | | | | | | | Previously the "Path:" option for breakpoints was ignored by the lldb engine. Change-Id: I3878ff7b50da994b26b9c42483e4640adc5c60cc Reviewed-by: hjk <hjk@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
* Debugger: Use Utils::Text::Position instead of int line numberhjk2023-06-071-3/+4
| | | | | | | The column is currently unused. Change-Id: Iabc57c8d21e807187783071efe9a82e9c1877181 Reviewed-by: hjk <hjk@qt.io>
* Debugger: Use more FilePath in source file handlinghjk2023-03-151-1/+1
| | | | | | | | | | Needed for the double-remote case. With this we have proper breakpoint markers in the text editor for a remotely running gdb on a remotely loaded project. Change-Id: If80e4a4108a4a0bcdd7612a59e2bd695213f5ea5 Reviewed-by: Orgad Shaneh <orgads@gmail.com>
* Remove GPL-3.0+ from license identifiersKai Köhne2023-01-061-1/+1
| | | | | | | | | | | | | | | Since we also license under GPL-3.0 WITH Qt-GPL-exception-1.0, this applies only to a hypothetical newer version of GPL, that doesn't exist yet. If such a version emerges, we can still decide to relicense... While at it, replace (deprecated) GPL-3.0 with more explicit GPL-3.0-only Change was done by running find . -type f -exec perl -pi -e "s/LicenseRef-Qt-Commercial OR GPL-3.0\+ OR GPL-3.0 WITH Qt-GPL-exception-1.0/LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0/g" {} \; Change-Id: I5097e6ce8d10233993ee30d7e25120e2659eb10b Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* Use SPDX license identifiersLucie Gérard2022-08-261-24/+2
| | | | | | | | | Replace the current license disclaimer in files by a SPDX-License-Identifier. Task-number: QTBUG-67283 Change-Id: I708fd1f9f2b73d60f57cc3568646929117825813 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* Debugger: Export BreakpointManager and some iconsChristian Stenger2022-08-221-1/+2
| | | | | | | | | | Allow retrieving of breakpoint information without the need to create a debugger engine. Export some icons for re-use. Change-Id: Ic3d5f22840c1b67e8b3e4e0892c204da3ab1af9e Reviewed-by: hjk <hjk@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
* Debugger: Convert to Tr::trhjk2022-07-081-15/+3
| | | | | Change-Id: I5d2475c790851c68f9997ac6af72b5eaca58482d Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* Debugger: Introduce a Ctrl-F9 shortcut to enable/disable breakpointshjk2022-01-041-1/+2
| | | | | | | | | | Since "toggle" now becomes ambiguous, change "Toggle Breakpoint" to "Set or Remove Breakpoint" and add a new "Enable or Disable Breakpoint" Fixes: QTCREATORBUG-26788 Change-Id: I7902308298570360af202fced90bf44fc1a59adb Reviewed-by: David Schulz <david.schulz@qt.io>
* Avoid size_t to (u)int warnings with auto, where it is possibleTim Jenssen2021-07-071-3/+3
| | | | | Change-Id: I1ec7454ebce59d99bc828bfd5086907eb0905632 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
* Add gdb tracepoint support for LinuxMattias Johansson2021-02-021-0/+1
| | | | | Change-Id: Id2e46bae576a730f8c1b64a247aeed12e6d721af Reviewed-by: hjk <hjk@qt.io>
* Debugger: Mark currently hit breakpoint in breakpoint viewhjk2021-01-071-3/+10
| | | | | | Fixes: QTCREATORBUG-6999 Change-Id: I2b080de0096d1e2bc5b348666adcf4797589fe15 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* Debugger: Fix editing breakpoints via breakpoints viewMichael Weghorn2020-12-041-0/+1
| | | | | | | | | | | | | | | | | | | As the comment for the 'm_parameters' member in the 'BreakpointItem' class says, that member is supposed to hold the "Parameters acknowledged by engine", which the parameters newly set in the dialog are not yet at this point in time. Therefore, if a global breakpoint exists, apply the new parameters there, so they are considered as pending changes (also returned by 'Breakpoint::requestedParameters') when 'BreakHandler::requestBreakpointUpdate' is called a few lines below, and new values get applied properly. Task-number: QTCREATORBUG-25035 Change-Id: I8bfd9123785ee911ff180d8311fa2559b55be580 Reviewed-by: hjk <hjk@qt.io>
* Debugger: Use new TextMark interface for Breakpointhjk2020-09-241-1/+0
| | | | | | | Simplifies usage. Change-Id: I0df50fe703b2b67ead7f2e35b3a3952fa6d91dab Reviewed-by: David Schulz <david.schulz@qt.io>
* Debugger: Handle failed breakpoints as unclaimedhjk2020-04-241-0/+1
| | | | | | Change-Id: I02a44db5391b174e75fc326ce217b271ee73c464 Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com> Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* Add final specifies to classesIgor Sidorov2020-02-051-1/+1
| | | | | | | Warning -Wfinal-dtor-non-final-class in clang trunk Change-Id: I2bf17064bf8898eab10b82b69583a283157766d0 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* Debugger: make BreakpointParameters::fileName a Utils::FilePathDavid Schulz2020-01-061-5/+5
| | | | | | Task-number: QTCREATORBUG-23339 Change-Id: Ifc497c14589cd6df10d8219533e100f1919213b3 Reviewed-by: hjk <hjk@qt.io>
* Debugger: Delete breakpoint markers on session switchhjk2019-11-281-1/+0
| | | | | | | | | | | | | | There were some left-over "ghost markers" when switching sessions, which should be gone now. This also pointed to a wrong use of SessionManager::aboutToUnloadSession which mustn't save data re-created in a save/load cycle as it is called during any session load, including the very first on startup no such data (e.g. breakpoints) have been created yet. Change-Id: I237a9e3500a786841618941ce85a97f7bd4f318c Fixes: QTCREATORBUG-22856 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* Debugger: further untangle of breakpoint item and markerDavid Schulz2019-10-171-1/+0
| | | | | Change-Id: I9331912c1b53a0110479f46ef1e576676441ab75 Reviewed-by: hjk <hjk@qt.io>
* Utils: Rename FileName to FilePathhjk2019-05-281-2/+2
| | | | | | | | More in line with QFileInfo terminonlogy which appears to be best-of-breed within Qt. Change-Id: I1d051ff1c8363ebd4ee56376451df45216c4c9ab Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Debugger: Remove unused BreakHandler::setBreakpointEnabled()hjk2018-10-221-1/+0
| | | | | Change-Id: Ie7ef810e72b3d02663b425c687407cdd2b0cea52 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* Debugger: Re-enable breakpoint state handling with keyboardChristian Stenger2018-10-161-1/+1
| | | | | | | | | This patch re-enables disabling or enabling breakpoints using the respective keyboard shortcut. Had been disabled since d6911fd10c0d. Change-Id: Iea3ce679bafcc78910be07984fd03b4a6e66eb8b Reviewed-by: hjk <hjk@qt.io>
* Debugger: Fix breakpoint disabling using context menuhjk2018-10-151-1/+1
| | | | | Change-Id: I3fa5ef2dc123f5f7f8292147626453284c1afd76 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Debugger: Consolidate breakpoint searchhjk2018-09-041-8/+1
| | | | | | | | | | | | | We already have a concept of Context when action on editor events, use that directly when searching an (almost) matching breakpoint instead of translating it into breakpoint manager's interface language. This also centralizes the guesswork for non-exact matches in one place, making it easier to fix currently wrong matches later. Change-Id: I5579e7e01792d425cad4ccf1dbcbbd1bd56c84ec Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* Debugger: Identify a breakpoint's requested parameters with preset datahjk2018-08-291-3/+3
| | | | | | | | | | | | This removes the ability to have different enabled/disabled states for the same breakpoint in concurrently running engines, but make the behavior less surprising. At least currently people *do* expect breakpoint changes in a running engine to persist after the engine dies. Change-Id: I911594765b24f2ce58f6747ae5ecab3e608882b8 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* Debugger: Move session load/restore handlinghjk2018-08-291-6/+4
| | | | | | | | | ... to breakpoint and watchhandler. More modular this way. Change-Id: I4a45481fcc2bfde67b164bd7274fb7b2a12cb7ac Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* Debugger: Re-enable breakpoint enabling via gutter context menuhjk2018-08-241-1/+1
| | | | | | Task-number: QTCREATORBUG-20970 Change-Id: Ie8fc2af8e99e82018a9b4262fe6053cb714e7d60 Reviewed-by: Orgad Shaneh <orgads@gmail.com>
* Debugger: Re-enable breakpoint property editing before debugger starthjk2018-08-211-1/+3
| | | | | | | | Amends 3b5ecac23. Task-number: QTCREATORBUG-20970 Change-Id: I8206b16bc17a4d3830b8e517c7e952efabcf4609 Reviewed-by: Orgad Shaneh <orgads@gmail.com>
* Debugger: Make most views per-engine instead of singletonshjk2018-08-171-137/+230
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a step towards properly supporting multiple debugger sessions side-by-side. The combined C++-and-QML engine has been removed, instead a combined setup creates now two individual engines, under a single DebuggerRunTool but mostly independent with no combined state machine. This requires a few more clicks in some cases, but makes it easier to direct e.g. interrupt requests to the interesting engine. Care has been taken to not change the UX of the single debugger session use case if possible. The fat debug button operates as-before in that case, i.e. switches to Interrupt if the single active runconfiguration runs in the debugger etc. Most views are made per-engine, running an engine creates a new Perspective, which is destroyed when the run control dies. The snapshot view remains global and becomes primary source of information on a "current engine" that receives all menu and otherwise global input. There is a new global "Breakpoint Preset" view containing all "static" breakpoint data. When an engine starts up it "claims" breakpoint it believes it can handle, but operates on a copy of the static data. The markers of the static version are suppressed as long as an engine controls a breakpoint (that inclusive all resolved locations), but are re-instatet once the engine quits. The old Breakpoint class that already contained this split per-instance was split into a new Breakpoint and a GlobalBreakpoint class, with a per-engine model for Breakpoints, and a singleton model containing GlobalBreakpoints. There is a new CppDebuggerEngine intermediate level serving as base for C++ (or, rather, "compiled") binary debugging, i.e. {Gdb,Lldb,Cdb}Engine, taking over bits of the current DebuggerEngine base that are not applicable to non-binary debuggers. Change-Id: I9994f4c188379b4aee0c4f379edd4759fbb0bd43 Reviewed-by: Christian Stenger <christian.stenger@qt.io> Reviewed-by: hjk <hjk@qt.io>
* Debugger: ModernizeAlessandro Portale2018-07-251-3/+3
| | | | | | | | | | | | | modernize-use-auto modernize-use-nullptr modernize-use-override modernize-use-using modernize-use-default-member-init modernize-use-equals-default Change-Id: I91a6874f0d7b94e9079ab4ef07c23c60c80be9c0 Reviewed-by: Christian Stenger <christian.stenger@qt.io> Reviewed-by: hjk <hjk@qt.io>
* Debugger: Code cosmeticshjk2018-05-311-3/+3
| | | | | | | Sprinkling in const and ranged for. Change-Id: I5d11d57f64140021397c23734c7373544ebebb6f Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* Utils: Streamline TreeModel APIhjk2016-07-271-1/+1
| | | | | | | | | | | | | | The LeveledTreeModel case is general enough to cover the UniformTreeModel case, so merge them and rename to TreeModel. The former TreeModel is now BaseTreeModel. BaseTreeModels should not be instantiated directly, a tree model with non-uniform basic items is available as TreeModel<>. Done-with: Eike Ziller <eike.ziller@qt.io> Change-Id: I64a65617ab68c0cde39cf65f4bc092ef808ee6fb Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* Debugger: Remove some uses of semi-global currentEngine()hjk2016-07-181-2/+18
| | | | | | | | | | Make use of recent TreeModel improvements in various tool views, push more operations into the engine- owned data models, specifically context menu creation. Change-Id: I479c97102b9fb81611c6461c6df1cec59295179a Reviewed-by: Christian Stenger <christian.stenger@qt.io> Reviewed-by: hjk <hjk@qt.io>
* Debugger: Consolidate icon storage handlinghjk2016-06-281-7/+0
| | | | | | | | | We settled now on global objects being fine for the purpose in Core and ProjectExplorer, so there's no point in using something more fancy in the debugger. Change-Id: I72e45f398c09d22894419c274dfbea77da0fc153 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* TreeModel: Re-order template arguments for tree levelshjk2016-06-241-1/+1
| | | | | | | | | More natural and easier to extend to use parameter packs later. Adjust users. Change-Id: Ic167196cc969d18bb1615084397e884f769d1e85 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* Debugger: Make the BreakHandler a LeveledTreeModelhjk2016-06-131-1/+2
| | | | | Change-Id: Idcf61d63318b8a1ab768b298f1b789de13ed91b2 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* Debugger: Remove debuggerstringutils.hhjk2016-06-091-2/+2
| | | | | | | | | | With QT_RESTRICTED_CAST_FROM_ASCII making GdbMi etc operate on QString is feasible again. Take this as opportunity to move debugger encoding handling closer to a 'conversion on input and output if needed, storage in QString only' scheme. Change-Id: I2f10c9fa8a6c62c44f4e6682efe3769e9fba30f7 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* Debugger: Cosmeticshjk2016-05-121-6/+0
| | | | | | | Qt 5 connects, unused declaration, QLatin1Strings, ... Change-Id: If09929993d750907ee3f4e2fa9f18acfcc28d9c1 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* Merge remote-tracking branch 'origin/4.0'Eike Ziller2016-04-201-0/+2
|\ | | | | | | | | | | | | | | Conflicts: src/plugins/projectexplorer/session.cpp src/plugins/qmlprofiler/qmlprofilerclientmanager.cpp Change-Id: I6946139f5e5fa3a9cdbb322fd50be248e2c0133f
| * Debugger: Add breakpoint commands for LLDB backendhjk2016-04-151-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commands needs to be given in Python, i.e. something like import time print time.asctime() for i in range(1, 10): print(i) works. Task-number: QTCREATORBUG-15585 Change-Id: I7724617e4bbe85a717ae78b21014e2b55c4089c8 Reviewed-by: Alexandru Croitor <alexandru.croitor@theqtcompany.com> Reviewed-by: hjk <hjk@theqtcompany.com>
* | Wholesale conversion to #pragma oncehjk2016-03-301-4/+1
|/ | | | | | | Kudos to cgmb and https://github.com/cgmb/guardonce Change-Id: Ifa8970734b8d43fd08c9260c645bdb0228633791 Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
* Update License according to agreement with Free Qt FoundationTobias Hunger2016-01-191-17/+12
| | | | | | | * Update files in src/plugins Change-Id: Ia5d77fad7d19d4bb3498e78661982f68729adb22 Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
* Clean exported headers of the Debugger plugin.Friedemann Kleint2015-02-261-0/+1
| | | | | Change-Id: I70ca6773e0f6aa6d80a441f8920d7f5d2418e1bf Reviewed-by: hjk <hjk@theqtcompany.com>
* Merge commit '3c85058694ee2e41658d17f524fb48f0b187d2fe'Eike Ziller2015-02-121-6/+6
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/libs/utils/tooltip/tipcontents.cpp src/libs/utils/tooltip/tipcontents.h src/plugins/android/androiddeployqtstep.cpp src/plugins/baremetal/baremetalconstants.h src/plugins/baremetal/baremetaldevice.cpp src/plugins/baremetal/baremetaldevice.h src/plugins/baremetal/baremetaldeviceconfigurationwidget.cpp src/plugins/baremetal/baremetaldeviceconfigurationwidget.h src/plugins/baremetal/baremetaldeviceconfigurationwizard.cpp src/plugins/baremetal/baremetaldeviceconfigurationwizardpages.cpp src/plugins/baremetal/baremetaldeviceconfigurationwizardpages.h src/plugins/baremetal/baremetalplugin.cpp src/plugins/baremetal/baremetalplugin.h src/plugins/baremetal/baremetalruncontrolfactory.cpp src/plugins/baremetal/baremetalruncontrolfactory.h src/plugins/cppeditor/cppcodemodelinspectordialog.cpp src/plugins/cppeditor/cppdoxygen_test.cpp src/plugins/cppeditor/cppdoxygen_test.h src/plugins/debugger/breakpointmarker.cpp src/plugins/debugger/debuggeritemmodel.cpp src/plugins/debugger/debuggeritemmodel.h src/plugins/debugger/loadcoredialog.cpp src/plugins/genericprojectmanager/cppmodelmanagerhelper.cpp src/plugins/projectexplorer/addnewmodel.cpp src/plugins/projectexplorer/addnewmodel.h src/plugins/projectexplorer/jsonwizard/jsonfieldpage.cpp src/plugins/qmlprofiler/abstracttimelinemodel.cpp src/plugins/qmlprofiler/abstracttimelinemodel.h src/plugins/qmlprofiler/notesmodel.cpp src/plugins/qmlprofiler/qml/CategoryLabel.qml src/plugins/qmlprofiler/qml/MainView.qml src/plugins/qmlprofiler/qml/Overview.js src/plugins/qmlprofiler/qml/Overview.qml src/plugins/qmlprofiler/qml/TimeDisplay.qml src/plugins/qmlprofiler/qml/TimeMarks.qml src/plugins/qmlprofiler/qmlprofilertimelinemodelproxy.cpp src/plugins/qmlprofiler/sortedtimelinemodel.cpp src/plugins/qmlprofiler/sortedtimelinemodel.h src/plugins/qmlprofiler/timelinemodelaggregator.cpp src/plugins/qmlprofiler/timelinemodelaggregator.h src/plugins/qmlprofiler/timelinerenderer.cpp src/plugins/qmlprofiler/timelinerenderer.h src/plugins/qmlprojectmanager/QmlProjectManager.json.in src/plugins/texteditor/findinfiles.cpp src/plugins/vcsbase/vcsconfigurationpage.cpp src/shared/qbs src/shared/scriptwrapper/interface_wrap_helpers.h src/shared/scriptwrapper/wrap_helpers.h tests/auto/qmlprofiler/abstracttimelinemodel/tst_abstracttimelinemodel.cpp tests/system/suite_debugger/tst_debug_empty_main/test.py tests/system/suite_debugger/tst_qml_js_console/test.py tests/system/suite_debugger/tst_qml_locals/test.py Change-Id: I67540b648f8b162496f4aa606b04d50c7c9125c6
| * Update LicenseEike Ziller2015-01-161-6/+6
| | | | | | | | | | Change-Id: I711d5fb475ef814a1dc9d2822740e827f3f67125 Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
* | Debugger: Pass all breakpoint properties to *brigde.pyhjk2015-02-041-0/+2
| | | | | | | | | | Change-Id: I58ee1b106e1cd6e8ad5ce99b226860c528698520 Reviewed-by: hjk <hjk@theqtcompany.com>
* | TreeModel: Add model pointer to TreeItemhjk2015-01-151-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | ... and use the items themselves as main entry point for item related operations. With non-uniform tree items it's easier to have item specific functionality directly in the item implementation instead of the model. Change-Id: I4e9b7db98d16b91ddef81917417691129bb83621 Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
* | Debugger: Re-work breakpoint storage handlinghjk2015-01-151-121/+139
| | | | | | | | | | | | | | | | | | | | | | | | The actual data is now in a TreeModel. As interface to individual breakpoints there's a new Breakpoint class essentially providing a checked handle. On the user code side breakHandler()->foo(bpId) is replaced by bp.foo(). Change-Id: I82f435bad6301fce85a1d82bf6bf39e9ddba511e Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
* | Debugger: Use Utils::TreeModel for breakpointshjk2015-01-121-25/+23
| | | | | | | | | | Change-Id: I7f62f9d64daf7624794aa82495d4b2c8d97b33df Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
* | Debugger: Make DebuggerEngine internalhjk2014-12-151-3/+1
| | | | | | | | | | | | | | | | | | | | Expose less of debugger internals to the device plugins. Change-Id: Ie78756b033fae3fe02bff92eadf26b7319990605 Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com> Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com> Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com> Reviewed-by: hjk <hjk121@nokiamail.com>
* | Debugger: Be less eager on breakpoint synchronizationhjk2014-12-081-0/+1
|/ | | | | | | | | Triggering synchronization too early leads to unnecessary pending breakpoints and complicates debugger startup. Change-Id: Ic1c0064f29eaa325a110baf9b22ec6bf66a00a2d Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com> Reviewed-by: David Schulz <david.schulz@theqtcompany.com>