[완료]Performance Counters 프로그램 작성 시 생기는 Access Violence 문제 -__-
글쓴이: superdma / 작성시간: 수, 2009/07/08 - 11:56오전
vs2008 express edition과 6.0에서 해당 소스파일을 컴파일 했는데
다음과 같은 오류가 나오더 군요...
Performance Counters.exe의 0x7c7db067에 처리되지 않은 예외가 있습니다. 0xC0000005: 0xff28fc2e 위치를 읽는 동안 액세스 위반이 발생했습니다.
밤새 Performance Counters에 대한 구조를 공부하고 예제를 돌리는 순간 -_-...
OS Internal 깊숙한 문제 같아서 감이 잘 안 잡히네요..ㅠㅠ
Process 당 CPU 부하율 빨리 구해야 되는데, 처음부터 막히네요.
Perfmance Coutner 예제는 첨부했습니다.
http://lollab.com/mat/pdh/pdh1.pdf 문서에 제시된 코드 입니다.
File attachments:
첨부 | 파일 크기 |
---|---|
![]() | 2.37 KB |
Forums:
깊숙한 문제는
깊숙한 문제는 아니구요.. 작성하신 코드에 문제가 있습니다.
NextInstance 함수의
이 부분에 문제가 있습니다. 할당되지 않은 포인터에 PerfCntrBlk->ByteLength를 하고 있습니다.
그리고 여러가지 치명적인 에러가 될수 있는 warning이 많이 뜨고 있습니다.
-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.
-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.
포인터 부분을 수정했는데요 ~
감사합니다.
디버깅에 서툴러서 미처 확인해 볼 생각도 못했네요.
NextInstance 함수를 다음과 같이 수정한 후 컴파일해도 이와 비슷한 다시 에러가 나네요.
0xC0000005: 0xff28f826 위치를 읽는 동안 액세스 위반이 발생했습니다.
다시 한번 구조체 mapping 된거 보고 확인해 봐야겠네요...
ㅠㅠ..,. 제발 실수가 있길
PerfInst의 다음 항목이
PerfInst의 다음 항목이 PerfCntrBlk에 들어갔는데 PerfCntrBlk의 다음 항목을 return하면 2칸 앞으로 가는 것 아닌가요?
Real programmers /* don't */ comment their code.
If it was hard to write, it should be /* hard to */ read.
디버거를
디버거를 붙여보세요. 디버거 붙이면 어디서 에러가 났는지 디버거가 알려줍니다.
그걸 토대로 watch창에 변수들 값을 넣어서 확인 해보세요.
소스가 있는데도 메시지로 나온 주소 값 가지고 디버깅 할려고 하니 무엇이 문제인지
알아내기 힘든 것입니다.
-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.
-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.
댓글 달기