TS 68 CNDgdblite
GDB Test Specification
Author: Alexander Pepin
Version: 1.0
Lastupdate: 9.9.2009
Introduction:
Contents |
Test suite: Actions
- Start
- create a sample application
- set a breakpoint in the main function
- start debugger
- start via toolbar button
- start via main menu
- start via project context menu
- verify that debugger started correctly
- Step Into Project
- create a sample application
- do step into project
- step into via project context menu
- step into via main menu
- verify that debugger started correctly
- Step Over
- create a sample application
- do step into project
- do step over
- step over via main menu
- step over via toolbar
- step over via shortcut
- verify that debugger stepped over correctly
- Step Into
- create a sample application with functions (e.g. Quote)
- do step into project
- do step into function
- step into via main menu
- step into via toolbar
- step into via shortcut
- verify that debugger stepped into function correctly
- do step into system function
- step into via main menu
- step into via toolbar
- step into via shortcut
- verify that debugger stepped into function correctly
- Step Out
- create a sample application with functions (e.g. Quote)
- do step into project
- do step into function
- do step out function
- step out via main menu
- step out via toolbar
- step out via shortcut
- verify that debugger stepped out function correctly
- do step into system function
- do step out system function
- step out via main menu
- step out via toolbar
- step out via shortcut
- verify that debugger stepped out function correctly
- do step out 'main' function
- step out via main menu
- step out via toolbar
- step out via shortcut
- verify that debugger stepped out main function correctly
- Continue
- create a sample application
- set a breakpoint in the main function
- start debugger
- when debugger stops at BP do continue
- continue out via main menu
- continue out via toolbar
- continue out via shortcut
- verify that debugger continued execution correctly
- Pause
- create an application with an endless loop
- start debugger
- when debugger starts do pause
- pause out via main menu
- pause out via toolbar
- pause out via shortcut
- verify that debugger paused execution correctly
- Finish
- create a sample application
- do step into project
- do finish
- finish out via main menu
- finish out via toolbar
- finish out via shortcut
- verify that debugger finished execution correctly
- Make Current
- create a sample application with functions (e.g. Quote)
- do step into project
- do step into function
- open Call Stack view
- select any stackframe and make it current
- verify that Local Variables view and Watches were updated accordingly
- Pop To Here
- create a sample application with functions (e.g. Quote)
- do step into project
- do step into function
- open Call Stack view
- select caller stackframe and do pop to here
- verify that debugger stops in caller function
- Pop Topmost Call
- create a sample application with functions (e.g. Quote)
- do step into project
- do step into function
- open Call Stack view
- open Debug menu Stack section and do pop topmost call
- verify that debugger stops in topmost caller function
- Make Caller Current
- create a sample application with functions (e.g. Quote)
- do step into project
- do step into function
- open Call Stack view
- open Debug menu Stack section and make caller current
- verify that Local Variables view and Watches were updated accordingly
- Make Callee Current
- create a sample application with functions (e.g. Quote)
- do step into project
- do step into function
- open Call Stack view
- open Debug menu Stack section and make caller current
- open Debug menu Stack section and make callee current
- verify that Local Variables view and Watches were updated accordingly
Test suite: Views
- check views, open, close etc.
- create a sample application
- do step into project
- check Local Variables view, open, close, change visible columns etc.
- check Watches view, open, close, change visible columns etc.
- check Call Stack view, open, close, change visible columns etc.
- check Sessions view, open, close, change visible columns etc.
- check Breakpoints view, open, close, change visible columns etc.
- check Threads view, open, close, change visible columns etc.
- check Registers view, open, close, change visible columns etc.
- check Memory view, open, close, change visible columns etc.
- Local Variables
- create a sample or some specific application
- do step into project
- check LV on sample projects
- check LV in function
- check numbers (short, int, long, float, double)
- check char
- check pointers
- check arrays
- check unions
- check classes
- check structures
- modify values
- check that values are updated accordingly
- Watches
- create a sample or some specific application
- do step into project
- create a new watch
- customize watch
- delete watch
- watch for function
- modify values
- check that values are updated accordingly
- Call Stack
- create a sample application with functions (e.g. Quote)
- do step into project
- call stack representation
- see call stack actions
- Breakpoints
- create a sample or some specific application
- set several breakpoint
- do step into project
- open Breakpoints view
- check breakpoint representation
- check Go To Source option
- diasable BP
- check that debugger ignore disabled BP
- diasable all BPs
- check that debugger ignore disabled BPs
- enable BP
- check that debugger stops at BP
- enable all BPs
- check that debugger stops at BPs
- customize BP (see Breakpoints section)
- line number
- condition
- event counter
- action
- print text
- check that changed options has effect
- delete BP
- check that debugger does not stop at BP
- delete all BPs
- check that debugger does not stop at any BPs
- Sessions
- create two or more sample or specific applications
- set several breakpoint in these applications
- do step into project or start debugger for each application
- open Sessions view
- check sessions representation in Sessions view
- switch between sessions and check that Local Variables and Watches are changed accordingly
- Threads
- create a multithreaded application
- do step into project and do steps needed to create new threads
- open Threads view
- check threads representation
- switch between threads and check that Local Variables and Watches are changed accordingly
- Memory
- create an application which modifies memory
- do step into project
- open Memory view and check memory content at the specific address
- do some steps and check that memory content is changed accordingly
- Disassembly
- create a sample application
- do step into project
- open Disassembly view and check disassembled source code
- do some steps and check that cursor moves accordingly
- Registers
- create a sample application
- do step into project
- open Registers view and check its content
- do some steps and check that content is changed accordingly
- Debugger Console
- create a sample application
- do step into project
- open Debugger Console
- do some steps and check console output
- Output
- create a sample application that needs input and produces output (e.g. Quote)
- set Run/Console Type property to Output Window
- do step into project
- do some steps and check that needed data can be entered and check output
- Terminal wnidow
- create a sample application that needs input and produces output (e.g. Quote)
- set Run/Console Type property to Default
- do step into project
- check that a new terminal window appears
- do some steps and check that needed data can be entered and check output
Test suite: Breakpoints
- Function BP
- create a sample application containing function calls (e.g. Quote)
- call Debug/New Breakpoint from the main menu
- set a breakpoint type to Function then enter function name and press OK
- start debugger and check that created breakpoint does work
- check that the breakpoint is displayed correctly in Breakpoints view
- Line BP
- create a sample application
- call Debug/New Breakpoint from the main menu
- set a breakpoint type to Line then enter a desirable line number and press OK
- start debugger and check that created breakpoint does work
- check that the breakpoint is displayed correctly in Breakpoints view
- Adress BP
- create a sample application
- do step into project
- open Disassembly view and remember an address where a breakpoint can be set
- call Debug/New Breakpoint from the main menu
- set a breakpoint type to Address then enter a desirable address and press OK
- continue debugging and check that created breakpoint does work
- check that the breakpoint is displayed correctly in Breakpoints view
- Toggle BP
- create a sample application
- click on the gutter next to line in the editor where a breakpoint should be set
- check that the breakpoint is created and a breakpoint annotation is added to the source file in the editor
- start debugger and check that created breakpoint does work
- check that the breakpoint is displayed correctly in Breakpoints view
- Customize BP
- customize (change function/line)
- start debugger and check that created breakpoint does work
- check that the breakpoint is displayed correctly in Breakpoints view
- Conditional BP
- check condition
- check count exceeds
- start debugger and check that created breakpoint does work
- check that the breakpoint is displayed correctly in Breakpoints view
- Actions for BP
- check suspend
- check Thread ID
- check Print Text
- start debugger and check that created breakpoint does work
- check that the breakpoint is displayed correctly in Breakpoints view
Test suite: Multi-Threaded Debugging
- Breakpoints
- create a multithreaded application
- check global BP
- check BP for each thread (see breakpoint customize section)
- LV/Watches
- create a multithreaded application
- check LV/Watches for thread (see Local Variables and Watches)
Test suite: Attach To Process
- Attach to process
- create a managed application
- run the application (in the IDE or from outside)
- call attach to process dialog
- find the process and attach to it
- debug attached process (check breakpoints, views, etc. )
- repeat the same steps for a makefile based application
- Attach to remote process
- create a managed remote application
- run the application in the IDE
- call attach to process dialog
- select an appropriate remote host
- select an appropriate project name
- find the process and attach to it
- debug attached process (check breakpoints, views, etc. )
- repeat the same steps for a makefile based application
- Attach to GDB server
- create a managed application (local or remote)
- run the application (in the IDE or from outside)
- call attach to process dialog
- select "Gdb Server" in the Debugger combobox
- set an appropriate hostname and port
- select an appropriate project name
- debug attached process (check breakpoints, views, etc. )
- repeat the same steps for a makefile based application
- Simple attach to the running process
- create a managed application (local or remote)
- run the application in the IDE
- press "Attach Debugger" button in the "Build,Run" output tab
- debug attached process (check breakpoints, views, etc. )
- repeat the same steps for a makefile based application
Test suite: Known Issues (Regression tests)
- 112359 All Incorrect type info for std::string
- 112618 PC It is impossible to change array member values using Local Variables View
- 112620 PC It is impossible to assign values for enum
- 112621 PC impossible to assign bool value in Local Variables View
- 112657 All Incorrectly displayed names/values in LV view for unions
- 112660 All Local variable and Watch nodes collapse after every step
- 112664 PC structs displayed incorrectly in Local Variables view
- 112667 PC Local Variables view should show fields defined in super class
- 112674 All Array and union members in a class are not displayed in LV
- 112680 All Complex node in the class can not be expanded after stepping
- 112682 All Union members can not be changed via Local Variables
- 113688 All Modifying union value in LV doesn't update other fields
- 114188 All Wrong multi dim array representation in LV
- 114191 All Values changed in the LV and WV don't visually persist
- 115346 All StringIndexOutOfBoundsException in watch with empty string
- 115378 All IDE fails while watching function with breakpoint
- 115380 All Watch still shows old values after changing the expression
- 115425 All Type field in watches joints after changing watched expression
- 115427 All Two watches show different values for the same variables
- 115464 All Debug process fails if watch expression fails
- 115728 All Debugger hangs if code contains a class without members
- 115735 All LV does not show base classes members of the class
- 115853 All Unnamed union is not shown
- 116003 All Class members are not shown in LV if it's referenced by pointer
- 116007 All Empty function name in customize BP dialog
- 116031 All Type of class in watches
- 116234 All Sleep in watched function makes step start more sessions
- 116303 All LV and Watches do not show char array elements
- 116305 All Array elements are not updated in Watches
- 116480 PC Invalid watches hang debug session
- 116539 All LV and Watches do not dereference pointers
- 116683 All Function in watch is not evaluated
- 118003 All Can not change value referenced by pointer if the pointer is a class member
- 118009 All LV and Watches should update after changing any value
- 118012 All std::string is not expandable in LV and Watches
- 121988 All Variables in Watches get collapsed
- 122996 All Wrong names of array elements in Watches
- 122997 All Wrong order of array elements in Watches
- 125587 All LV doesn't handle nested/hidden variables
- 126196 All Variable in LV gets collapsed after each step
- 126197 All Pointers are not expandable in LV and Watches
- 126199 All Class members in Watches are not updated
- 126639 All LV and Watches do not show std::string if it's a class member
- 128498 All int variable has a child element in Watches
- 128721 Sun Customized breakpoints does not work
- 128752 All Huge number of array elements on the final step over

