Qt wiki will be updated on October 12th 2023 starting at 11:30 AM (EEST) and the maintenance will last around 2-3 hours. During the maintenance the site will be unavailable.
Qt Creator ManualTests DebuggerGdb: Difference between revisions
Jump to navigation
Jump to search
(Move gdbserver test to avoid confusion on following tests) |
(Simplify crash test) |
||
Line 37: | Line 37: | ||
| | | | ||
|+ | |+ | ||
| Comment out the return statement | | Comment out the return statement inside the following functions one by one. Check whether you'll end up with a proper stack trace & locals display. | ||
* | * testNullPointerDeref() | ||
* testNullReferenceHelper(pp, qq); | * testNullReferenceHelper(pp, qq); | ||
* testEndlessLoop(); (break manually) | * testEndlessLoop(); (break manually) |
Revision as of 14:21, 8 August 2017
necessary code can be found in the QtCreator repository:
- tests/manual/debugger/simple/simple.pro
and
- tests/manual/debugger/cli-io/cli-io.pro
Test | Result | Annotation | |
---|---|---|---|
Create new project. Can you build, run and debug it? | automated | ||
Set breakpoint, press F5 to build and run debugger, verify that program stops at a breakpoint that you set:
|
|||
"Step into" a couple of times. Can you step into Qt source code (*.cpp file under QTDIR)?
(Mac: switch on 'Use Debug Versions of Frameworks' in run configuration. You need Qt sources.) |
|||
Test debugging helpers/python gdb: Do classes like QImage or std::string show beautiful information instead of the raw structure? | automated | ||
Step through some test* functions and check whether the displayed data looks sane | |||
Comment out the return statement inside the following functions one by one. Check whether you'll end up with a proper stack trace & locals display.
|
|||
Switch on temporarily 'Operate by Instruction' and check whether you see disassembler output and can step by instruction | |||
Check I/O (qDebug, std::cout, std::cerr), on Win for both Debug and Release. Please read the below note! | |||
Check "Run in Terminal". Use Terminal for input. (Debbuging might not work on Ubuntu) | |||
Check nothing bad happens on a simple int main() {} program with no breakpoints set | automated | ||
Linux/Mac: Attach to a core file (ulimit -c unlimited) | |||
Attach to a running process (might not work on Ubuntu) | |||
Test unusual situations: Kill the running debugged program 'externally' with a signal that is neither SIGSTOP nor SIGKILL. Qt Creator should end up showing a backtrace. | |||
Kill the stopped debugged program 'externally'. Nothing should happen immediately, on next continue or step Qt Creator should end up showing a backtrace. | |||
Kill gdb externally. Qt Creator should notice the gdb process ended and show a message box. | |||
Try remote debugging: start a gdbserver using e.g.
gdbserver localhost:1234 ./fakevim
in creator/tests/manual/fakevim on a Linux machine and connect to it |
stderr/stdout handling on Windows
- An application needs to be built with 'console' for stderr/stdout to appear (use Creator's "Run in terminal" setting)
- Creator itself is built with 'console' in debug mode only.
- qDebug() prints to stderr for ‘console’ apps, else to the Windows debugger log, which can be shown with the DbgView utility