에러메시지에 뜬 주소로 명령어 찾기
화1이트
visual c++ 6 edition으로 프로그램을 짜는데요,
build 한 다음 실행파일을 run 하면
프로그램을 마친 후 다음과 같은 에러메시지가 뜨네요.
0x7c95ae22에 있는 명령이 0x00080174의 메모리를 참조했습니다.
메모리는 read될 수 없었습니다 라는요.
제가 완전 초보라 그러는데요, 0x7c95ae22에 있는 명령어가 제가 작성한 프로그램의어떤 명령어인지
찾는 방법을 좀 알려주세요.
어떤 명령어가 잘못됬는지 알아야 디바깅 할 것 아닙니까 ?
꼭 부탁드립니다.
-
서리서리
linux라면 addr2line을 이용해서 찾을 수 있긴 한데.. VS는.. -_-;;
-
텃골
참고로 프로그램을 실행 시킨 후 메뉴에 디버그쪽인가 가시면 call stack 이라는 녀석이 있을 겁니다. 이 녀석까지 켜두셨다면 프로그램이 죽었을 때 어떤 함수를 타고 그 함수까지 왔는지 절차를 볼 수 있어 문제를 해결하는데 좀 더 도움이 되곤 합니다.
-
첫빛
f5 로 프로그램을 실행하세요-_- ctrl+f5 나 프로그램을 단독으로 실행한 경우 저와 같은 메시지만 나오고 수다님이 말씀하신 코드에서 멈추질 않을 겁니다. 그렇지 않은 경우 메시지가 나오고 프로그램을 계속 실행하겠냐는 메시지 창이 나올때 컨티뉴를 누르시면 됩니다.. 근디.. 제가 vs6 을 쓴지가 하도 오래 되어서 여기서도 잘 될런지 모르겠네요
-
CreamyGirl
보통 메모리 주소까지 가서 찾진 않던데요;;
-
별햇님
잘 못 알고 있는게 아니라면..
메모리 오류는 보통 디버거 들어가시면 소스 나올텐데...
근데 저거 소스라고 해도 어셈블리어로 나오시는건 아시죠?
실행자체를 VS자체의 디버그 모드로 실행하면
해당 소스 부분에 멈출지는 잘 모르겠군요.
발생원인에 따라서는 디버깅하면서 에러가 발생하면 잘 하면 나올지 모르겠지만.. -
펴라
프로그램이 워낙 길어서 코드로는 못찾아서 그래요ㅜㅜㅜ
-
재넘이
작성한 코드를 적어주시는게 빠를지도;;