Visual Studio에서 C++을 사용하여 콜 스택을 인쇄 할 API가 있는지 궁금합니다. 가급적이면 5 단계 콜 스택을 인쇄하고 싶습니다. Windows에서이 작업을 수행 할 수있는 간단한 API를 제공합니까?콜 스택의 n 레벨 인쇄?
10
A
답변
5
이렇게하는 방법에는 여러 가지가 있습니다.
USHORT WINAPI CaptureStackBackTrace(
__in ULONG FramesToSkip,
__in ULONG FramesToCapture,
__out PVOID *BackTrace,
__out_opt PULONG BackTraceHash
);
이 FramesToCapture 매개 변수, 반환 된 최대 호출 스택의 깊이를 결정
는 간단하고도 가장 신뢰할 수있는 방법은 Win32 API 함수는, 내 의견으로는
8
Microsoft의 DbgHelp 라이브러리가 원하는대로 할 수있는 것처럼 보입니다. 자세한 내용은 MSDN의 StackWalk64 함수 설명서를 참조하십시오. 또한 this CodeProject article이 유용 할 수 있습니다.
0
DbgHelp API의 Stackwalk 및 Stackwalk64 API를 살펴보십시오.
1
디버거 API (dbghelp)에서 해결할 수 있다고 생각합니다.
관련 문제
- 1. N 레벨 어린이 반복하기
- 2. N 레벨 트리 PHP MySQL 데이터 도움말
- 3. Clojure에서 테일 콜 제거?
- 4. 스택의 생성자
- 5. 스택의 투명보기
- 6. clojure의 체인 콜?
- 7. 방법 : n 레벨 중첩 된 Gridview를 구현 하시겠습니까?
- 8. 시스템 콜 카운팅
- 9. 호출 스택의 "[Lightweight Function]"
- 10. 액티비티 스택의 액티비티 교체하기
- 11. 스택의 테스트 케이스
- 12. 네비게이션 스택의 변경 제어하기
- 13. 탐색 스택의 다른보기에 액세스
- 14. 액티비티 스택의 액티비티 위치
- 15. 고유 값이있는 스택의 이름
- 16. 스택의 C++ 스트림 다형성?
- 17. C 스택의 데이터 구성?
- 18. 스택의 데이터 정렬 (C++)
- 19. 다른 탐색 스택의 변수
- 20. UIView 콜 아웃 버블
- 21. Qt 크로스 쓰레드 콜
- 22. 콜 사례를 생성하는 플러그인
- 23. 콜 그래프 생성 R
- 24. 레일스 - escape_javascript가 없어도 \ n \ n \ n \ n \ n
- 25. (n) curses를 사용하여 터미널의 오른쪽 또는 아래쪽면에 인쇄
- 26. 의 log4j 인쇄
- 27. XCode는 프로그램의 콜 그래프를 그릴 수 있습니까?
- 28. Java에서 2d n * n 행렬의 역행렬을 찾으십니까?
- 29. 리눅스에서 tcpip 스택의 다중 인스턴스
- 30. gcc가 스택의 매개 변수를 전달하도록하십시오.
이것은 기호 정보를 생성하지 않습니다. 어떤 포인터 값을 사용합니까? –
C/C++ 프로그램은 기본적으로 기호 정보를 절대로 포함하지 않습니다. 스택 덤프에 심볼을 추가하는 방법은 다음을 참조하십시오. http://www.drdobbs.com/architecture-and-design/post-mortem-debugging-revisited/227900186 –