cornercorner
FeaturesPluginsDocs & SupportCommunityPartners

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