本文整理汇总了C#中ICorDebugThread类的典型用法代码示例。如果您正苦于以下问题:C# ICorDebugThread类的具体用法?C# ICorDebugThread怎么用?C# ICorDebugThread使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
ICorDebugThread类属于命名空间,在下文中一共展示了ICorDebugThread类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Breakpoint
// Do not pass the pBreakpoint parameter as ICorDebugBreakpoint - marshaling of it fails in .NET 1.1
public void Breakpoint(ICorDebugAppDomain pAppDomain, ICorDebugThread pThread, IntPtr pBreakpoint)
{
ManagedCallback managedCallback = GetProcessCallbackInterface(pAppDomain);
if (managedCallback != null) {
managedCallback.Breakpoint(pAppDomain, pThread, pBreakpoint);
}
}
示例2: Breakpoint
public virtual void Breakpoint(
ICorDebugAppDomain appDomain,
ICorDebugThread thread,
ICorDebugBreakpoint breakpoint)
{
this.DefaultHandler(appDomain);
}
示例3: Break
public void Break(ICorDebugAppDomain pAppDomain, ICorDebugThread pThread)
{
EnterCallback(PausedReason.Break, "Break", pThread);
pauseOnNextExit = true;
ExitCallback();
}
示例4: StepComplete
public void StepComplete(ICorDebugAppDomain pAppDomain, ICorDebugThread pThread, ICorDebugStepper pStepper, CorDebugStepReason reason)
{
ManagedCallback managedCallback = GetProcessCallbackInterface(pAppDomain);
if (managedCallback != null) {
managedCallback.StepComplete(pAppDomain, pThread, pStepper, reason);
}
}
示例5: CorDebugThread
public CorDebugThread(ICorDebugThread _thread)
{
m_corThread = _thread;
uint id;
m_corThread.GetID(out id);
ID = id;
}
示例6: EditAndContinueRemap
public virtual void EditAndContinueRemap(
ICorDebugAppDomain appDomain,
ICorDebugThread thread,
ICorDebugFunction function,
bool accurate)
{
this.DefaultHandler(appDomain);
}
示例7: Breakpoint
public void Breakpoint(
ICorDebugAppDomain pAppDomain,
ICorDebugThread pThread,
ICorDebugBreakpoint pBreakpoint)
{
m_listner.PostBreakPoint(new CorThread(pThread));
//controller.Continue(0);
}
示例8: Breakpoint
public void Breakpoint(ICorDebugAppDomain pAppDomain, ICorDebugThread pThread, ICorDebugBreakpoint pBreakpoint)
{
var handler = OnBreakpoint;
if (handler != null)
{
handler(this, new DebuggerBreakpointEventArgs(pThread, pBreakpoint));
}
pAppDomain.Continue(0);
}
示例9: AddThread
internal void AddThread(ICorDebugThread corThread)
{
Thread thread = new Thread(this, corThread);
threadCollection.Add(thread);
OnThreadStarted(thread);
thread.NativeThreadExited += delegate {
threadCollection.Remove(thread);
};
}
示例10: GetThread
internal Thread GetThread(ICorDebugThread corThread)
{
foreach(Thread thread in threadCollection) {
if (thread.CorThread == corThread) {
return thread;
}
}
throw new DebuggerException("Thread is not in collection");
}
示例11: HandleEvalEvent
private void HandleEvalEvent(ICorDebugAppDomain pAppDomain, ICorDebugThread pThread, ICorDebugEval pEval)
{
var domain = GetProcessWrapper(pAppDomain).GetAppDomain(pAppDomain);
var thread = domain.GetThread(pThread);
var eval = Session.ComInstanceCollector.GetWrapper<RuntimeEvaluation>(pEval);
var eventArgs = new DebuggerEventArgs(domain, true);
eval.DispatchEvaluationCompleted(eventArgs);
FinalizeEvent(eventArgs);
}
示例12: GetProcessCallbackInterface
public ManagedCallback GetProcessCallbackInterface(string name, ICorDebugThread pThread)
{
ICorDebugProcess pProcess;
try {
pProcess = pThread.Process;
} catch (COMException e) {
debugger.TraceMessage("Ignoring callback \"" + name + "\": " + e.Message);
return null;
}
return GetProcessCallbackInterface(name, pProcess);
}
示例13: MoveNext
//
// IEnumerator interface
//
#region IEnumerator Members
public bool MoveNext()
{
var a = new ICorDebugThread[1];
uint c = 0;
int r = m_enum.Next((uint) a.Length, a, out c);
if (r == 0 && c == 1) // S_OK && we got 1 new element
m_th = new CorThread(a[0]);
else
m_th = null;
return m_th != null;
}
示例14: Breakpoint
// Warning! Marshaing of ICorBreakpoint fails in .NET 1.1
public void Breakpoint(ICorDebugAppDomain pAppDomain, ICorDebugThread pThread, ICorDebugBreakpoint corBreakpoint)
{
EnterCallback(PausedReason.Breakpoint, "Breakpoint", pThread);
Breakpoint breakpoint = process.Debugger.Breakpoints[corBreakpoint];
// The event will be risen outside the callback
process.BreakpointHitEventQueue.Enqueue(breakpoint);
pauseOnNextExit = true;
ExitCallback();
}
示例15: FunctionRemapOpportunity
/// <summary>
/// Finds appropriete SequncePointMap instances and builds SequencePointRemapper, gets new IL offset and call RemapFunction.
/// </summary>
public void FunctionRemapOpportunity(ICorDebugAppDomain pAppDomain, ICorDebugThread pThread, ICorDebugFunction pOldFunction, ICorDebugFunction pNewFunction, uint oldILOffset)
{
ICorDebugILFrame2 frame = (ICorDebugILFrame2) pThread.GetActiveFrame();
uint nToken = pOldFunction.GetToken();
SequencePointRemapper remapper;
if(!remappers.TryGetValue(nToken,out remapper)){
throw new KeyNotFoundException("Methods sequence points not found.");
}
frame.__RemapFunction(remapper.TranslateILOffset(oldILOffset));
}