2016-07-07 6 views
0

최근에 나는 오류보고와 관련하여 PostSharp의 사용을 평가 해 왔습니다. NET에서 Stack Frame 내에서 매개 변수와 같은 값을 쉽게 얻을 수있는 메커니즘이 제공되지 않는다는 것을 알게되었으므로 Postsharp를 사용하여 메서드 삽입 기술을 살펴 보았습니다.로컬 변수에 대한 PostSharp 액세스

이것은 OnEnter를 사용하는 메소드의 매개 변수 값을 얻는 데 매우 유용하지만, 어떤 형태로 이것을 캐시해야합니다.

그러나 로컬 변수에 액세스 할 때는 스택에 있기 때문에 postsharp 또는 다른 대체 라이브러리를 사용하여 달성 할 수 있는지/확실하지 않습니다. 필자는 프로파일 링과 디버깅 모두에 대해 관리되지 않는 API를 이미 살펴 봤습니다. 이는 오류 보고서를 생성하는 것처럼 단순한 무언가에 대한 다소 무거운 접근 방식처럼 보입니다.

답변

0

이것은 PostSharp에서는 불가능하며 모든 IL 제직 도구로 달성하기는 매우 어렵습니다.

Cecil과 같은 저수준 IL 재 작성 도구를 사용해야합니다.

Generating a minidump file 예외가 발생하면 주목할만한 옵션이됩니다.

+0

나는 그다지 의심 스럽지만 어쨌든 나는 그 질문을 할 것이라고 생각했다. 근본적으로 우리가 사용하려는 다른 도구의 에뮬레이션은 스택 추적 로컬 및 매개 변수 값의 일부로 제공되는 업데이트 및 지원 중단의 부족으로 수행해야합니다. 또한 미니 덤프 파일의 생성과 읽기 (나는 이미 PDB 파일을 읽는 법을 배우는 데 어려움을 겪었습니다)에 관해서는 약간 녹슬니다. –

관련 문제