1

예외를 발생시키지 않고 Windows 스토어에서 현재 호출 스택을 가져올 수 있습니까?현재 호출 스택 받기

나는 this answer을 발견했지만 Windows 스토어 앱에는 적용되지 않습니다.

왜 내가 DirectX를 텍스처 메모리 누수가 있기 때문에이

내가, 호출 스택을 얻을 필요가 필요가 없습니다.

할당 할 때 호출 스택을 텍스처에 첨부하고 싶습니다. 일부 프로그램을 사용한 후에는 할당 해제되지 않은 모든 텍스처의 콜 스택을 인쇄합니다.

텍스처를 할당 해제하는 것을 잊어 버린 곳을 쉽게 볼 수 있습니다.

+1

http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem –

답변

6

.NET (예 : StackFrame)과 같이 현재 스택에 대한 액세스 권한을 얻기위한 문서화 된 방법은 없습니다.

조작을 기록하는 함수를 작성하여 실행 기록이나 기록을 유지하려고 할 수 있습니다.

Log("hello!"); 

는 생산겠습니까 ...

[Conditional("DEBUG")] 
void Log(string message, 
     [CallerMemberName] string member = "", 
     [CallerFilePath] string path = "", 
     [CallerLineNumber] int line = 0) { 
    Debug.WriteLine(string.Format("{0}\t{1}:{3} ({2}) ", 
     message, member, path, line)); 
} 

사용 :

hello! MainPage_Loaded:45 (c:\Dev\Projects\Win8AppTest\MainPage.xaml.cs) 

위의 기능은 사용할 수있는 몇 가지 비교적 최근에 속성을 사용하여이 기능에 붙여 넣기 조금 필요 . 예 : CallerMemberName. 이 함수는 호출자의 메서드 또는 속성 이름을 가져옵니다.

Conditional 속성은 DEBUG 빌드에서만 함수를 컴파일한다고 말합니다.

+0

나는 그것에 대해 읽었지만 잊어 버렸습니다. 고마워! – thumbmunkeys