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

From Qt Wiki
Jump to navigation Jump to search
(Removed one test)
(Split table to reflect recommended tests projects)
Line 1: Line 1:
[[Category:Tools::QtCreator::QualityAssurance]]
[[Category:Tools::QtCreator::QualityAssurance]]
necessary code can be found in the QtCreator repository:
* '''tests/manual/debugger/simple/simple.pro'''
and
* '''tests/manual/debugger/cli-io/cli-io.pro'''


{| class="wikitable"
{| class="wikitable"
|+ Debugger g++/gdb
|+ Tests using '''tests/manual/debugger/simple/simple.pro''' from Qt Creator's source repository
! Test
! Test
! Result
! Result
! Annotation
! 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:
| Set breakpoint, press F5 to build and run debugger, verify that program stops at a breakpoint that you set:
Line 58: Line 49:
| Switch on temporarily 'Operate by Instruction' and check whether you see disassembler output and can step by instruction
| Switch on temporarily 'Operate by Instruction' and check whether you see disassembler output and can step by instruction
|
|
|
|}
 
{| class="wikitable"
|+ Tests using '''tests/manual/debugger/cli-io/cli-io.pro''' from Qt Creator's source repository
! Test
! Result
! Annotation
|+
|+
| Check I/O (qDebug, std::cout, std::cerr), on Win for both Debug and Release. Please read the below note!
| Check I/O (qDebug, std::cout, std::cerr), on Win for both Debug and Release. Please read the below note!
Line 66: Line 63:
| Check "Run in Terminal". Use Terminal for input. (Debbuging might not work on Ubuntu)
| Check "Run in Terminal". Use Terminal for input. (Debbuging might not work on Ubuntu)
|
|
|}
{| class="wikitable"
|+ Tests using any other project
! Test
! Result
! Annotation
|+
| Create new project. Can you build, run and debug it?
| automated
|
|
|+
|+
| Check nothing bad happens on a simple int main() {} program with no breakpoints set
| Check nothing bad happens on a simple int main() {} program with no breakpoints set
| automated
| automated
|
|
|
|+
|+
Line 82: Line 88:
|+
|+
| 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.
| 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 the stopped debugged program 'externally'. Nothing should happen immediately, on next continue or step Qt Creator should end up showing a backtrace.
|
|
|
|+
|+

Revision as of 19:36, 12 November 2019


Tests using tests/manual/debugger/simple/simple.pro from Qt Creator's source repository
Test Result Annotation
Set breakpoint, press F5 to build and run debugger, verify that program stops at a breakpoint that you set:
  • in main function before program is started
  • while the program is running
  • in dynamically loaded plugins, especially in constructors
  • on a bit of code that was commented out. Make sure it is moved on debugger startup to the first line producing real code below that position and that it is hit there.
"Step into" a couple of times. Can you step into Qt source code (*.cpp file under QTDIR. You might need to configure source paths mapping under Tools -> Options -> Debugger -> Add Qt sources...)?

(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 (not all) 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.
  • testNullPointerDeref()
  • testNullReference()
  • testEndlessLoop(); (break manually)
  • testEndlessRecursion();
  • testUncaughtException(); (not on Windows)
Test a breakpoint in a QThread:
  1. Uncomment the call to qthread::testQThread()
  2. Place a breakpoint in qthread::Thread::run()
  3. Run this in the debugger
  4. Make sure that:
    • the breakpoint receives the right number of hits
    • "Locals and Expressions" and "Stack" views show reasonable data, including the object names of the threads
Switch on temporarily 'Operate by Instruction' and check whether you see disassembler output and can step by instruction
Tests using tests/manual/debugger/cli-io/cli-io.pro from Qt Creator's source repository
Test Result Annotation
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)
Tests using any other project
Test Result Annotation
Create new project. Can you build, run and debug it? automated
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.
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