You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/extensibility/debugger/asynctaskmethodbuilder-structure-internal-members.md
+5-5Lines changed: 5 additions & 5 deletions
Original file line number
Diff line number
Diff line change
@@ -15,7 +15,7 @@ manager: douge
15
15
ms.workload:
16
16
- "vssdk"
17
17
---
18
-
# AsyncTaskMethodBuilder Structure - Internal Members
18
+
# AsyncTaskMethodBuilder structure - internal members
19
19
This topic describes the internal members of the <xref:System.Runtime.CompilerServices.AsyncTaskMethodBuilder> class. For general information about this class, see the <xref:System.Runtime.CompilerServices.AsyncTaskMethodBuilder> reference topic.
|[ObjectIdForDebugger property](../../extensibility/debugger/asynctaskmethodbuilder-objectidfordebugger-property.md)|Gets an object that may be used to uniquely identify this builder to the debugger.|
40
40
|[m_builder field](../../extensibility/debugger/asynctaskmethodbuilder-m-builder-field.md)|Represents the generic builder object to which this non-generic instance delegates.|
Copy file name to clipboardExpand all lines: docs/extensibility/debugger/asynctaskmethodbuilder-tresult-structure-internal-members.md
+5-5Lines changed: 5 additions & 5 deletions
Original file line number
Diff line number
Diff line change
@@ -15,7 +15,7 @@ manager: douge
15
15
ms.workload:
16
16
- "vssdk"
17
17
---
18
-
# AsyncTaskMethodBuilder<TResult>Structure - Internal Members
18
+
# AsyncTaskMethodBuilder<TResult>structure - internal members
19
19
This topic describes the internal members of the <xref:System.Runtime.CompilerServices.AsyncTaskMethodBuilder%601> class. For general information about this class, see the <xref:System.Runtime.CompilerServices.AsyncTaskMethodBuilder%601> reference topic.
|[ObjectIdForDebugger property](../../extensibility/debugger/asynctaskmethodbuilder-tresult-objectidfordebugger-property.md)|Gets an object that may be used to uniquely identify this builder to the debugger.|
40
40
|[m_task field](../../extensibility/debugger/asynctaskmethodbuilder-tresult-m-task-field.md)|Represents the lazily initialized built task.|
Copy file name to clipboardExpand all lines: docs/extensibility/debugger/asyncvoidmethodbuilder-structure-internal-members.md
+5-5Lines changed: 5 additions & 5 deletions
Original file line number
Diff line number
Diff line change
@@ -15,7 +15,7 @@ manager: douge
15
15
ms.workload:
16
16
- "vssdk"
17
17
---
18
-
# AsyncVoidMethodBuilder Structure - Internal Members
18
+
# AsyncVoidMethodBuilder structure - internal members
19
19
This topic describes the internal members of the <xref:System.Runtime.CompilerServices.AsyncVoidMethodBuilder> class. For general information about this class, see the <xref:System.Runtime.CompilerServices.AsyncVoidMethodBuilder> reference topic.
|[ObjectIdForDebugger property](../../extensibility/debugger/asyncvoidmethodbuilder-objectidfordebugger-property.md)|Gets an object that may be used to uniquely identify this builder to the debugger.|
40
40
|[m_objectIdForDebugger field](../../extensibility/debugger/asyncvoidmethodbuilder-m-objectidfordebugger-field.md)|Represents the lazily initialized object used by the debugger to uniquely identify this builder.|
Copy file name to clipboardExpand all lines: docs/extensibility/debugger/attaching-after-a-launch.md
+14-14Lines changed: 14 additions & 14 deletions
Original file line number
Diff line number
Diff line change
@@ -14,36 +14,36 @@ manager: douge
14
14
ms.workload:
15
15
- "vssdk"
16
16
---
17
-
# Attaching After a Launch
18
-
After a program has been launched, the debug session is ready to attach the debug engine (DE) to said program.
17
+
# Attach after a launch
18
+
After a program launches, the debug session is ready to attach the debug engine (DE) to said program.
19
19
20
-
## Design Decisions
21
-
Because communication is easier within a shared address space, you must decide whether it makes more sense to facilitate the communication between the debug session and the DE, or between the DE and the program. Choose between the following:
20
+
## Design decisions
21
+
Because communication is easier within a shared address space, you must choose between two design approaches: set communication between the debug session and the DE. Or, set communication between the DE and the program. Choose between the following:
22
22
23
-
- If it makes more sense to facilitate communication between the debug session and the DE, then the debug session co-creates the DE and asks the DE to attach to the program. This leaves the debug session and DE together in one address space, and the run-time environment and program together in another.
23
+
- If it makes more sense to set up the communication between the debug session and the DE, the debug session co-creates the DE and asks the DE to attach to the program. This design leaves the debug session and DE together in one address space, and the run-time environment and program together in another.
24
24
25
-
- If it makes more sense to facilitate communication between the DE and the program, then the run-time environment co-creates the DE. This leaves the SDM in one address space, and the DE, run-time environment, and program together in another. This is typical of a DE that is implemented with an interpreter to run scripted languages.
25
+
- If it makes more sense to set up the communication between the DE and the program, the run-time environment co-creates the DE. This design leaves the SDM in one address space and the DE, run-time environment, and program together in another. This design is typical of a DE that is implemented with an interpreter to run scripted languages.
26
26
27
27
> [!NOTE]
28
28
> How the DE attaches to the program is implementation-dependent. Communication between the DE and the program is also implementation-dependent.
29
29
30
30
## Implementation
31
-
Programmatically, when the session debug manager (SDM) first receives the [IDebugProgram2](../../extensibility/debugger/reference/idebugprogram2.md) object that represents the program to be launched, it calls the [Attach](../../extensibility/debugger/reference/idebugprogram2-attach.md) method, passing it an [IDebugEventCallback2](../../extensibility/debugger/reference/idebugeventcallback2.md) object, which is later used to pass debug events back to the SDM. The `IDebugProgram2::Attach` method then calls the [OnAttach](../../extensibility/debugger/reference/idebugprogramnodeattach2-onattach.md) method. For more information on how the SDM receives the `IDebugProgram2` interface, see [Notifying the Port](../../extensibility/debugger/notifying-the-port.md).
31
+
Programmatically, when the session debug manager (SDM) first receives the [IDebugProgram2](../../extensibility/debugger/reference/idebugprogram2.md) object that represents the program to be launched, it calls the [Attach](../../extensibility/debugger/reference/idebugprogram2-attach.md) method, passing it an [IDebugEventCallback2](../../extensibility/debugger/reference/idebugeventcallback2.md) object, which is later used to pass debug events back to the SDM. The `IDebugProgram2::Attach` method then calls the [OnAttach](../../extensibility/debugger/reference/idebugprogramnodeattach2-onattach.md) method. For more information on how the SDM receives the `IDebugProgram2` interface, see [Notifying the port](../../extensibility/debugger/notifying-the-port.md).
32
32
33
-
If your DE needs to run in the same address space as the program being debugged, typically because the DE is part of an interpreter running a script, the `IDebugProgramNodeAttach2::OnAttach` method returns `S_FALSE`, indicating that it completed the attach process.
33
+
If your DE needs to run in the same address space as the program you're debugging: because the DE is typically part of an interpreter that's running a script, the `IDebugProgramNodeAttach2::OnAttach` method returns `S_FALSE`. The `S_FALSE` return indicates that it completed the attach process.
34
34
35
-
If, on the other hand, the DE runs in the address space of the SDM, the `IDebugProgramNodeAttach2::OnAttach` method returns `S_OK` or the [IDebugProgramNodeAttach2](../../extensibility/debugger/reference/idebugprogramnodeattach2.md) interface is not implemented at all on the [IDebugProgramNode2](../../extensibility/debugger/reference/idebugprogramnode2.md) object associated with the program being debugged. In this case, the [Attach](../../extensibility/debugger/reference/idebugengine2-attach.md) method is eventually called to complete the attach operation.
35
+
If, however, the DE runs in the address space of the SDM: the `IDebugProgramNodeAttach2::OnAttach` method returns `S_OK`, or the [IDebugProgramNodeAttach2](../../extensibility/debugger/reference/idebugprogramnodeattach2.md) interface isn't implemented at all on the [IDebugProgramNode2](../../extensibility/debugger/reference/idebugprogramnode2.md) object associated with the program you're debugging. In this case, the [Attach](../../extensibility/debugger/reference/idebugengine2-attach.md) method is eventually called to complete the attach operation.
36
36
37
37
In the latter case, you must call the [GetProgramId](../../extensibility/debugger/reference/idebugprogram2-getprogramid.md) method on the `IDebugProgram2` object that was passed to the `IDebugEngine2::Attach` method, store the `GUID` in the local program object, and return this `GUID` when the `IDebugProgram2::GetProgramId` method is subsequently called on this object. The `GUID` is used to identify the program uniquely across the various debug components.
38
38
39
-
Note that in the case of the `IDebugProgramNodeAttach2::OnAttach` method returning `S_FALSE`, the `GUID` to use for the program is passed to that method and it is the `IDebugProgramNodeAttach2::OnAttach` method that sets the `GUID` on the local program object.
39
+
In the case of the `IDebugProgramNodeAttach2::OnAttach` method returning `S_FALSE`, the `GUID` to use for the program is passed to that method and it's the `IDebugProgramNodeAttach2::OnAttach` method that sets the `GUID` on the local program object.
40
40
41
41
The DE is now attached to the program and ready to send any startup events.
42
42
43
-
## See Also
44
-
[Attaching Directly to a Program](../../extensibility/debugger/attaching-directly-to-a-program.md)
45
-
[Notifying the Port](../../extensibility/debugger/notifying-the-port.md)
0 commit comments