Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "CDT/Archive/cdt-debug-dsf-gdb"

< CDT‎ | Archive
m
m
Line 24: Line 24:
 
[http://www.eclipse.org/dsdp/dd/development/relnotes/dd_news-1.1.html#mozTocId232571 N&N Entry]
 
[http://www.eclipse.org/dsdp/dd/development/relnotes/dd_news-1.1.html#mozTocId232571 N&N Entry]
  
== Bugs ==  
+
== Manual Test Procedures ==
  
 +
=== GDB Basic Sanity Test ===
 +
*# Check out and build the sanity test project from /cvsroot/dsdp/org.eclipse.dd.dsf/tests/SanityTest
 +
*# Launch the DSF debugger with break at main
 +
*# Follow instructions in the test.
  
== Manual Test Procedures ==
+
=== Launching ===
 +
* '''Perspective'''
 +
*# In Preferences->Run/Debug->Perspectives, make sure that at least one perspective change option is set to prompt.
 +
*# Set the java or c++ perspective
 +
*# Launch a DSF program
 +
*#* Verify that there is a prompt to switch perspective to Debug, Answer yes
 +
*#* Verify the perspective switches
 +
* '''Expanding after launch'''
 +
*#* Verify from the above test that the Debug view has a selection to the top-most thread
 +
*# Close Debug view
 +
*# Open Debug view
 +
*# Verify that the Debug view has a selection to the top-most thread
 +
* '''Break on main'''
 +
*# Set a valid break-on-main symbol, and launch.
 +
*#* Check: the program breaks at the correct location.
 +
*# Set an invalid break-on-main symbol, and launch.
 +
*#* Check: the launch should fail with an error from creating the break-on-main breakpoint
 +
*# Set a break-on-main symbol that is not reachable by the program, but the program continues running, and launch.
 +
*#* Check: the launch should complete as if there was no break-on-main symbol set.
 +
*# Set a break-on-main symbol that is not reachable by the program, but and the program exits quickly.
 +
*#* Check: the launch should complete and the program should run and terminate normally.
 +
* '''Remote Launch'''
 +
*# Start a gdbserver session with the binary of the eclipse C++ project
 +
*# Use the DSF Remote launch to connect to that gdbserver
 +
*#* Verify that the debugging session is the same as a local debugging session
 +
*#* Verify that the Restart button is grayed out
 +
* '''Local Attach Launch'''
 +
*# Start the binary of your project outside of eclipse (this binary should take a long time to execute to give you enough time to attach to it)
 +
*# Use the DSF Attach to Local applicaiton launch
 +
*#* Verify that a popup window prompts for the process to attach to
 +
*# Select the binary you started
 +
*#* Verify that the debugging session is the same as a local debugging session
 +
*#* Verify that the Restart button is grayed out
 +
*#* Verify that the output of the binary remains on the terminal where it was started
 +
* '''Remote Attach Launch'''
 +
*# Start a gdbserver session with the --multi flag and no binary
 +
*# Start the binary of your project outside of eclipse (this binary should take a long time to execute to give you enough time to attach to it)
 +
*# Use the DSF Attach launch to connect to that gdbserver using the 'gdbserver Debugger' type
 +
*#* Verify that a popup window prompts for the process pid to attach to (no list)
 +
*#* Put in the pid of the binary you started
 +
*#* Verify that the debugging session is the same as a local debugging session
 +
*#* Verify that the Restart button is grayed out
 +
*#* Verify that the output of the binary remains on the terminal where it was started
 +
* '''Output'''
 +
*# Launch a local debug session
 +
*# Step the program to execute a couple of instructions that have a printf
 +
*#* Verify that the output of the program is properly seen in a separate console.
 +
* '''Restart'''
 +
*# Launch a local debug session
 +
*# Step the program to execute a couple of instructions
 +
*# Press the Restart button and verify that the program restarts from the beginning
 +
*#* Verify also that the "Break on main option is still respected on the restart
 +
*#* Verify also that the output of the program is properly seen in a separate console.

Revision as of 20:15, 5 January 2009

Overview

Features

Version support

  • GDB 6.7+

Launching

N&N Entry

  • Launch Configurations
    • Launch an application on local host
    • Attach to a running process
    • Launch an application on a remote host
  • GDB Debugger options
    • Non-stop mode selection

Non-stop mode multi-threaded debugging support

N&N Entry

Multi-process Debugging

N&N Entry

CLI Console

N&N Entry

Manual Test Procedures

GDB Basic Sanity Test

    1. Check out and build the sanity test project from /cvsroot/dsdp/org.eclipse.dd.dsf/tests/SanityTest
    2. Launch the DSF debugger with break at main
    3. Follow instructions in the test.

Launching

  • Perspective
    1. In Preferences->Run/Debug->Perspectives, make sure that at least one perspective change option is set to prompt.
    2. Set the java or c++ perspective
    3. Launch a DSF program
      • Verify that there is a prompt to switch perspective to Debug, Answer yes
      • Verify the perspective switches
  • Expanding after launch
      • Verify from the above test that the Debug view has a selection to the top-most thread
    1. Close Debug view
    2. Open Debug view
    3. Verify that the Debug view has a selection to the top-most thread
  • Break on main
    1. Set a valid break-on-main symbol, and launch.
      • Check: the program breaks at the correct location.
    2. Set an invalid break-on-main symbol, and launch.
      • Check: the launch should fail with an error from creating the break-on-main breakpoint
    3. Set a break-on-main symbol that is not reachable by the program, but the program continues running, and launch.
      • Check: the launch should complete as if there was no break-on-main symbol set.
    4. Set a break-on-main symbol that is not reachable by the program, but and the program exits quickly.
      • Check: the launch should complete and the program should run and terminate normally.
  • Remote Launch
    1. Start a gdbserver session with the binary of the eclipse C++ project
    2. Use the DSF Remote launch to connect to that gdbserver
      • Verify that the debugging session is the same as a local debugging session
      • Verify that the Restart button is grayed out
  • Local Attach Launch
    1. Start the binary of your project outside of eclipse (this binary should take a long time to execute to give you enough time to attach to it)
    2. Use the DSF Attach to Local applicaiton launch
      • Verify that a popup window prompts for the process to attach to
    3. Select the binary you started
      • Verify that the debugging session is the same as a local debugging session
      • Verify that the Restart button is grayed out
      • Verify that the output of the binary remains on the terminal where it was started
  • Remote Attach Launch
    1. Start a gdbserver session with the --multi flag and no binary
    2. Start the binary of your project outside of eclipse (this binary should take a long time to execute to give you enough time to attach to it)
    3. Use the DSF Attach launch to connect to that gdbserver using the 'gdbserver Debugger' type
      • Verify that a popup window prompts for the process pid to attach to (no list)
      • Put in the pid of the binary you started
      • Verify that the debugging session is the same as a local debugging session
      • Verify that the Restart button is grayed out
      • Verify that the output of the binary remains on the terminal where it was started
  • Output
    1. Launch a local debug session
    2. Step the program to execute a couple of instructions that have a printf
      • Verify that the output of the program is properly seen in a separate console.
  • Restart
    1. Launch a local debug session
    2. Step the program to execute a couple of instructions
    3. Press the Restart button and verify that the program restarts from the beginning
      • Verify also that the "Break on main option is still respected on the restart
      • Verify also that the output of the program is properly seen in a separate console.

Back to the top