디버깅(3)
-
[WinDbg] 개론
WinDbg란윈도우 디버거. NT 이상의 OS에서 OS와 응용프로그램 디버깅을 모두 지원하는 도구. 주요 기능- 응용프로그램 디버깅(User Mode Debugging)- 커널 모드 드라이버 디버깅(Kernel Mode Debugging)- 크래시 덤프 파일 분석- 윈도우 시스템 분석- 스크립트와 확장 DLL- 디버깅 도움말 커널 모드 드라이버 디버깅, 크래시 덤프 파일 분석 WinDbg만의 특징. 덤프 파일 : 윈도우가 응용프로그램이나 OS에서 문제를 발견했을 때 자동으로 생성하는 파일. WinDbg 종류유저모드 디버깅유저모드 - 일반적으로 응용프로그램이 동작하는 환경을 의미한다.응용프로그램은 이런 환경에서 각 프로세스로 실행되며 별도 2G의 메모리 공간을 가지고 있다.(32비트 기준)0 ~ 0x7FF..
2016.01.20 -
[디버깅] 조건 디버깅(VS2015)
200개의 데이터에 150번째 데이터를 보고 싶은데 어떻게 해야하나?150번 F5? 브레이크 포인트에 조건 걸어주기2015오면서 조금 세련되게(?) 코드에 바로 저렇게 수정할 수 있는 UI가 나온다.2013까진 아마 새창이 뜬 것으로 알고 있다. 해당 변수에 i == 150 의 조건식을 걸어주고 F5를 누르면 for를 반복한 후 150일 때 브레이크가 걸린다. char* 문자열일 경우는 strcmp(str, "string")의 형태로 조건식을 걸어주면 된다.
2016.01.02 -
[디버깅] 메모리 디버깅(VS2015)
메모리 디버깅 과정은해당 자료의 포인터를 이용하여 해당 지점의 값이 변경되었는지를 확인하는 방법이다.변경 시점을 예상하기 어렵거나 알 수 없는 지점에서 변경되어 버그가 생길 때 사용할 수 있다.사실상 소규모 프로젝트에선 쓸 일이 거의 없겠지만규모가 큰 프로젝트에선 가끔씩 쓸 일이 생길 수 있다. 과정과정은 간단히 요약하면중단점 걸기 -> 관찰 하고자 하는 자료의 포인터 알아내기 -> 해당 포인터로 중단점 걸기 -> 적중 중단점 걸기그렇다. 중단점을 걸어야 데이터를 볼 수 있으니..예제는 testData 백터에 0번째 값을 변경한다. 중단점 지정조자식을 통해 testData의 0번째 데이터의 포인터를 얻을 수 있다.0x00$$$$$$ 형태로 된 포인터를 복사해두고(메모장이나 직접 입력) 새로 만들기 -> ..
2016.01.02