The user is then free to examine the state of the interrupted program, or continue execution either line-by-line or continuously. Typically, breakpoints are associated with a source code file and line, or the start of a function -- both are allowed in Qt Creator. Breakpoints can be set and deleted before the program has actually started running or while it is running under the debugger's control. Also, breakpoints are saved together with a session. When the program being debugged is interrupted, Qt Creator displays the nested function calls leading to the current position as a call stack trace.
This stack trace is built up from call stack frames , each representing a particular function. For each function, Qt Creator tries to retrieve the file name and line number of the corresponding source file. This data is shown in the Stack view. Since the call stack leading to the current position may originate or go through code for which no debug information is available, not all stack frames have corresponding source locations. These frames are grayed out in the Stack view.
If you click on a frame with a known source location, the text editor jumps to the corresponding location and updates the Locals and Watchers view, making it seem like the program was interrupted before entering the function. If a multi-threaded program is interrupted, the Thread view or the combobox named Thread in the debugger's status bar can be used to switch from one thread to another.
The Stack view adjusts itself accordingly. These views display the debugger's idea of the components of the application. By default, both views are hidden. By default, both Disassembler and Registers view are hidden. The Disassembler view displays disassembled code for the current function; the Registers view displays the current state of the CPU's registers. Whenever a program stops under the control of the debugger, it retrieves information about the topmost stack frame and displays it in the Locals and Watchers view.
This typically includes information about parameters of the function in that frame as well as the local variables. Compound variables of struct or class type are displayed as "expandable" in the view. Together with the display of value and type, the user can examine and traverse the low-level layout of an object's data. However, optimization may lead to re-ordering of instructions or sometimes even complete removal of some local variables.
In this case, the Locals and Watchers view may show unexpected data. The debug information provided by gcc does not include enough information about the time when a variable is initialized. Therefore, Qt Creator can not tell whether the contents of a local variable contains "real data", or "initial noise".
If a QObject appears uninitialized, its value is reported as "out of scope". However, not all uninitialized objects can be recognized as such. The Locals and Watchers view also provides access to the most powerful feature of the debugger: To enable this feature, select Use debugging helper from the Debug menu.
The Locals and Watchers view is re-organized to provide a high-level view of the objects. For example, in case of QObject , instead of displaying a pointer to some private data structure, you see a list of children, signals and slots.
Similarly, instead of displaying many pointers and integers, Qt Creator's debugger displays the contents of a QHash or QMap in an orderly manner. Also, the debugger displays access data for QFileInfo and provides access to the "real" contents of QVariant. The Locals and Watchers view can be used to change the contents of variables of simple data types such as int or float when the program is interrupted.
To do so, click on the Value column, modify the value with the inplace editor, and hit Enter or Return. While debugging, Qt Creator dynamically loads a helper library into your program. The Qt SDK package already contains a prebuilt debugging helper library.
As the internal data structures of Qt can change between versions, the debugging helper library is built for each Qt version. Use a Python enabled version if one is available. The non-Python versions use the compiled version of the debugging helpers, that you must enable separately. The Python version uses a script version of the debugging helpers that does not need any special setup. For more information on the debugger modes, see Launching the Debugger in Different Modes. There are various reasons why the debugger plugin may fail to automatically pick up a suitable native debugger.
The native debugger might be missing which is usually the case for the CDB debugger on Windows which always needs to be installed manually by the user or the installed version is not supported. Check the table below for the supported versions and other important information about installing native debuggers. The Qt Creator help browser does not allow you to download files, and therefore, you must copy the above links to a browser. Visual Studio does not include the Debugging tools needed, and therefore, you must install them separately.
It is highly recommended that you add the Symbol Server provided by Microsoft to the symbol search path of the debugger. The Symbol Server provides you with debugging informaton for the operating system libraries for debugging Windows applications. If you use a qmake based project in Qt Creator, you can set a flag in your run configuration, in Projects mode. In the run configuration, select Use debug version of frameworks. For more detailed information about debugging on the Mac OS X, see: For a workaround, see: To obtain debugging information for the operating system libraries for debugging Windows applications, add the Symbol Server provided by Microsoft to the symbol search path of the debugger:.
The main debugger settings are associated with the kit you build and run your when your system contains no, or an outdated version of GDB and you want to use a For more detailed information about debugging on macOS, see: Mac OS X. I gather that in Qt Creator lldb will be supported. and created a new project using this kit, yet it still says that there is no debugger set up.
Make sure it is related to this specific page.
For more general bugs and requests, please use the Qt Bug Tracker. RSS Atom. Setting Up Debugger Note: Supported Native Debugger Versions The debugger plugin supports different builds of the GDB debugger, both with and without the ability to use Python scripting. Installing Native Debuggers There are various reasons why the debugger plugin may fail to automatically pick up a suitable native debugger.