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.
Difference between revisions of "CDT/Archive/cdt-debug-dsf-gdb"
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] | ||
− | == | + | == 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. | ||
− | == | + | === 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
Contents
Overview
Features
Version support
- GDB 6.7+
Launching
- 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
Multi-process Debugging
CLI Console
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.
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.
- Set a valid break-on-main symbol, and launch.
- 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.