CSharpEditor  1.1.2
A C# source code editor with syntax highlighting, intelligent code completion and real-time compilation error checking
CSharpEditor.InterprocessDebuggerServer Class Reference

A class used to analyse breakpoints on a separate process (to avoid deadlocks with breakpoints in synchronous code). More...

Inheritance diagram for CSharpEditor.InterprocessDebuggerServer:

Public Member Functions

 InterprocessDebuggerServer (string clientExePath)
 Initializes a new InterprocessDebuggerServer, starting the client process and establishing pipes to communicate with it. More...
 
 InterprocessDebuggerServer (string clientExePath, IEnumerable< string > initialArguments)
 Initializes a new InterprocessDebuggerServer, starting the client process and establishing pipes to communicate with it. More...
 
 InterprocessDebuggerServer (string clientExePath, IEnumerable< string > initialArguments, Func< int, int > getClientPid)
 Initializes a new InterprocessDebuggerServer, starting the client process and establishing pipes to communicate with it. More...
 
Func< BreakpointInfo, bool > SynchronousBreak (Editor editor)
 Returns a function to handle breakpoints in synchronous methods by transferring the breakpoint information to the client process. Pass the output of this method as an argument to Editor.Compile(Func<BreakpointInfo, bool>, Func<BreakpointInfo, Task<bool>>). The function will lock until the client process signals that execution can resume. More...
 
Func< BreakpointInfo, Task< bool > > AsynchronousBreak (Editor editor)
 Returns a function to handle breakpoints in asynchronous methods by transferring the breakpoint information to the client process. Pass the output of this method as an argument to Editor.Compile(Func<BreakpointInfo, bool>, Func<BreakpointInfo, Task<bool>>). This function will actually execute synchronously and lock until the client process signals that execution can resume. More...
 
void Dispose ()
 Kills the debugger client process and frees the pipe resources. More...
 

Detailed Description

A class used to analyse breakpoints on a separate process (to avoid deadlocks with breakpoints in synchronous code).

Definition at line 39 of file InterprocessDebugger.cs.

Constructor & Destructor Documentation

◆ InterprocessDebuggerServer() [1/3]

CSharpEditor.InterprocessDebuggerServer.InterprocessDebuggerServer ( string  clientExePath)

Initializes a new InterprocessDebuggerServer, starting the client process and establishing pipes to communicate with it.

Parameters
clientExePathThe path to the executable of the client process.

Definition at line 55 of file InterprocessDebugger.cs.

◆ InterprocessDebuggerServer() [2/3]

CSharpEditor.InterprocessDebuggerServer.InterprocessDebuggerServer ( string  clientExePath,
IEnumerable< string >  initialArguments 
)

Initializes a new InterprocessDebuggerServer, starting the client process and establishing pipes to communicate with it.

Parameters
clientExePathThe path to the executable of the client process.
initialArgumentsThe arguments that will be used to start the client process. The additional arguments specific to the InterprocessDebuggerServer will be appended after these.

Definition at line 65 of file InterprocessDebugger.cs.

◆ InterprocessDebuggerServer() [3/3]

CSharpEditor.InterprocessDebuggerServer.InterprocessDebuggerServer ( string  clientExePath,
IEnumerable< string >  initialArguments,
Func< int, int >  getClientPid 
)

Initializes a new InterprocessDebuggerServer, starting the client process and establishing pipes to communicate with it.

Parameters
clientExePathThe path to the executable of the client process.
initialArgumentsThe arguments that will be used to start the client process. The additional arguments specific to the InterprocessDebuggerServer will be appended after these.
getClientPidA method that returns the process identifier (PID) of the client debugger process. The argument of this method is the PID of the process that has been started by the server. If this is null, it is assumed that the process started by the server is the client debugger process.

Definition at line 76 of file InterprocessDebugger.cs.

Member Function Documentation

◆ AsynchronousBreak()

Func<BreakpointInfo, Task<bool> > CSharpEditor.InterprocessDebuggerServer.AsynchronousBreak ( Editor  editor)

Returns a function to handle breakpoints in asynchronous methods by transferring the breakpoint information to the client process. Pass the output of this method as an argument to Editor.Compile(Func<BreakpointInfo, bool>, Func<BreakpointInfo, Task<bool>>). This function will actually execute synchronously and lock until the client process signals that execution can resume.

Parameters
editorThe Editor whose code will be debugged. Note that no reference to this object is kept after this method returns.
Returns
A function to handle breakpoints in asynchronous methods by transferring the breakpoint information to the client process. If the client process is not executing when a breakpoint occurs, it is started again.

Definition at line 267 of file InterprocessDebugger.cs.

◆ Dispose()

void CSharpEditor.InterprocessDebuggerServer.Dispose ( )

Kills the debugger client process and frees the pipe resources.

Definition at line 442 of file InterprocessDebugger.cs.

◆ SynchronousBreak()

Func<BreakpointInfo, bool> CSharpEditor.InterprocessDebuggerServer.SynchronousBreak ( Editor  editor)

Returns a function to handle breakpoints in synchronous methods by transferring the breakpoint information to the client process. Pass the output of this method as an argument to Editor.Compile(Func<BreakpointInfo, bool>, Func<BreakpointInfo, Task<bool>>). The function will lock until the client process signals that execution can resume.

Parameters
editorThe Editor whose code will be debugged. Note that no reference to this object is kept after this method returns.
Returns
A function to handle breakpoints in synchronous methods by transferring the breakpoint information to the client process. If the client process is not executing when a breakpoint occurs, it is started again.

Definition at line 143 of file InterprocessDebugger.cs.


The documentation for this class was generated from the following file: