2008-10-03 3 views

답변

3

당신은되지 않습니다 불구하고 CLR debugging API를 사용하여이 정보를 얻을 수 있습니다 그것을 추출하는 간단한 몇 줄.

+0

관리되는 디버거 샘플 : http://www.microsoft.com/downloads/details.aspx?familyid=38449a42-6b7a-4e28-80ce-c55645ab1310&displaylang=en –

1

반사는 메서드에있는 매개 변수 유형을 알려주지 만 특정 호출 중에 값을 발견하는 데 도움이되지 않습니다. 리플렉션은 지역 변수에 대해 전혀 알려주지 않습니다.

디버거에서 이러한 종류의 정보에 액세스하는 데 필요한 API가 필요합니다.

0

저는 이것이 가능하지 않다고 생각합니다. StackTrace를보고 메서드와 매개 변수를 가져올 수 있습니다.

System.Diagnostics.StackTrace sTrace = new System.Diagnostics.StackTrace(true); 
for (Int32 frameCount = 0; frameCount < sTrace.FrameCount; frameCount++){ 
    System.Diagnostics.StackFrame sFrame = sTrace.GetFrame(frameCount); 
    System.Reflection.MethodBase thisMethod = sFrame.GetMethod(); 
    if (thisMethod == currentMethod){ 
      if (frameCount + 1 <= sTrace.FrameCount){ 
       System.Diagnostics.StackFrame prevFrame = sTrace.GetFrame(frameCount + 1); 
       System.Reflection.MethodBase prevMethod = prevFrame.GetMethod(); 
      } 
    } 
} 
0

의 사람들 스크립트를 중단하고 서버 사이를 이동 "BeforeAdvice"인터셉터에 대한 링크입니다. 이는 호출 스택의 변수 값을 포함하여 실행중인 스크립트의 상태를 캡처해야 함을 의미합니다.

그들의 스크립팅 언어는 .NET 런타임의 오픈 소스 구현 인 모노에서 실행됩니다. 나는 그들의 솔루션이 일반 .NET 런타임에 적용될 지 의심 스럽지만 video of the presentation on how they did it (후반으로 건너 뛰기)은 여전히 ​​흥미로울 수 있습니다.

관련 문제