Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "DSDP/DD/MultiContext"
m (→Documentation) |
m |
||
Line 1: | Line 1: | ||
This sub-group is focused on improving the workflow of multi-context debugging. ''Multi-context'' refers to simultaneous debugging of multiple cores, processes, threads, or other objects which are represented in standard debugger views. | This sub-group is focused on improving the workflow of multi-context debugging. ''Multi-context'' refers to simultaneous debugging of multiple cores, processes, threads, or other objects which are represented in standard debugger views. | ||
− | == | + | == Use Cases == |
+ | |||
+ | '''Format:''' | ||
+ | * ''Family of use cases'' | ||
+ | *; ''Use case'' : ''Description of the use case'' | ||
+ | *:; ''Scenario'': | ||
+ | *:;:* ''Step'' | ||
+ | |||
+ | * I. Programs with multiple threads | ||
+ | *;1 Two or more threads interacting : User is debugging a program with multiple threads which are interacting with each other. | ||
+ | *:; a) Debugging threads which contend for the same lock. : | ||
+ | *:;:# When a thread blocks while stepping, | ||
+ | *:;:# User switches focus to another thread and steps until the lock is released, | ||
+ | *:;:# User switches focus back to the first thread and continues debugging. | ||
+ | *:; b) Debugging race conditions where multiple threads are reading and writing some shared data : | ||
+ | *:;:# User sets a breakpoint at a location where a shared variable is written. | ||
+ | *:;:# Multiple threads hit the breakpoint | ||
+ | *:;:# User looks at each threads to see the thread-private data in each thread. | ||
+ | *:;:# User steps the threads individually to watch what happens to the shared data. | ||
+ | *:;:# Alternatively, user steps all threads. | ||
+ | *:;:# Multiple threads may hit the breakpoint at the same time. | ||
+ | *:;:# User sets another breakpoint further down in routines that access the shared data. | ||
+ | *:;:# User continues some or all of the threads which stopped at the first breakpoint so that they may reach the second breakpoint. | ||
+ | *:2 Debugging a subset of threads : User is debugging a program with multiple threads, but he is interested only in interacting with some of the threads. | ||
+ | *:; a) User debugs a routine which is executed by many threads. User would like to observe a few of the threads as they execute the given routine. | ||
+ | *:;:# User creates a breakpoint on the routine to be debugged. | ||
+ | *:;:# User defines which threads should be allowed to hit the breakpoint. | ||
+ | *:;:# The threads hit the breakpoint and user steps through them. | ||
+ | *:;:# User terminates the process, and re-launches it. | ||
+ | *:;:# User continues debugging the given routine within the specific threads. | ||
+ | |||
+ | * 2 Multiple processes that interact with each other | ||
+ | |||
+ | * 3 Systems with multiple cores | ||
+ | |||
+ | |||
+ | == Problems with Current Workflow == | ||
+ | |||
+ | == Proposed Changes == | ||
+ | |||
+ | |||
+ | == Old Documents == | ||
This sub-group was created following a discussion about platform debug dev: [http://dev.eclipse.org/mhonarc/lists/platform-debug-dev/msg01179.html "ideas for improving multi-context debugging"]. | This sub-group was created following a discussion about platform debug dev: [http://dev.eclipse.org/mhonarc/lists/platform-debug-dev/msg01179.html "ideas for improving multi-context debugging"]. | ||
* [[DSDP/DD/MultiContext_UnlinkViewContextProposal|Unlink View Context proposal]] | * [[DSDP/DD/MultiContext_UnlinkViewContextProposal|Unlink View Context proposal]] | ||
− |
Revision as of 23:55, 2 April 2008
This sub-group is focused on improving the workflow of multi-context debugging. Multi-context refers to simultaneous debugging of multiple cores, processes, threads, or other objects which are represented in standard debugger views.
Use Cases
Format:
- Family of use cases
- Use case
- Description of the use case
- Scenario
- Step
- I. Programs with multiple threads
- 1 Two or more threads interacting
- User is debugging a program with multiple threads which are interacting with each other.
- a) Debugging threads which contend for the same lock.
- When a thread blocks while stepping,
- User switches focus to another thread and steps until the lock is released,
- User switches focus back to the first thread and continues debugging.
- b) Debugging race conditions where multiple threads are reading and writing some shared data
- User sets a breakpoint at a location where a shared variable is written.
- Multiple threads hit the breakpoint
- User looks at each threads to see the thread-private data in each thread.
- User steps the threads individually to watch what happens to the shared data.
- Alternatively, user steps all threads.
- Multiple threads may hit the breakpoint at the same time.
- User sets another breakpoint further down in routines that access the shared data.
- User continues some or all of the threads which stopped at the first breakpoint so that they may reach the second breakpoint.
- 2 Debugging a subset of threads : User is debugging a program with multiple threads, but he is interested only in interacting with some of the threads.
- a) User debugs a routine which is executed by many threads. User would like to observe a few of the threads as they execute the given routine.
- User creates a breakpoint on the routine to be debugged.
- User defines which threads should be allowed to hit the breakpoint.
- The threads hit the breakpoint and user steps through them.
- User terminates the process, and re-launches it.
- User continues debugging the given routine within the specific threads.
- 2 Multiple processes that interact with each other
- 3 Systems with multiple cores
Problems with Current Workflow
Proposed Changes
Old Documents
This sub-group was created following a discussion about platform debug dev: "ideas for improving multi-context debugging".