Skip to main content

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.

Jump to: navigation, search

Difference between revisions of "DSDP/DD/MultiContext"

< DSDP‎ | DD
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.   
  
== Documentation ==
+
== 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]]
* TODO: Debug Working Sets 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. 
    1. When a thread blocks while stepping,
    2. User switches focus to another thread and steps until the lock is released,
    3. 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 
    1. User sets a breakpoint at a location where a shared variable is written.
    2. Multiple threads hit the breakpoint
    3. User looks at each threads to see the thread-private data in each thread.
    4. User steps the threads individually to watch what happens to the shared data.
    5. Alternatively, user steps all threads.
    6. Multiple threads may hit the breakpoint at the same time.
    7. User sets another breakpoint further down in routines that access the shared data.
    8. 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.
    1. User creates a breakpoint on the routine to be debugged.
    2. User defines which threads should be allowed to hit the breakpoint.
    3. The threads hit the breakpoint and user steps through them.
    4. User terminates the process, and re-launches it.
    5. 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".

Back to the top