SharedIT | 묻고 답하기(AMP)

Crush Dump 분석 도움이 필요합니다!!

안녕하십니까 선배님들 !!

오늘도 정보를 모아 열심히 성장중인 후배입니다

다름이 아니라 제가 만든 프로그램중 하나가 컴퓨터 안의 문서들 C, Document ...etc  

전부를 스캔 하는 프로그램입니다 

그런데 이친구를 실행시키면

어쩔때는 제가 만든 exe를 실행 시킬경우 블루스크린이떠서

Windbg 툴을 이용해 Crush dump 파일을 분석해보니

ntkrnlmp.exe 혹은 제가 만든 프로그램이 원인이 되어 블루 스크린이 뜨더라고요 (10번중 2번꼴) 


ntkrnlmp.exe가 정확히 어떤 역할을 하는지 구글링 해보았으나 .. 그저 두루뭉실하게 적혀져있을뿐 ...  


혹시 ntkrnlmp가 어떤 기능을 하는지 자세하게 아시는 선배님이 있을까 해서 여기에 여쭈어 봅니다 ..! 



ps ....3개월 수습기간인데 열심히 일해서 2달만에 정직원 되었습니다 선배님들 덕분이라고 생각합니다.!!

Tags : 태그가 없습니다.

2개의 답변이 있습니다.

wansoo
  0 추천 | 약 2년 전

C로 만드셨나요?

직접 만든 소프트웨어가 런타임 오류가 발생한다면...

대부분이 메모리를 잘못 접근해서 발생하는 오류입니다.

특히 C나 C++이라면 포인트를 잘못 사용해서 발생하는 경우가 90% 이상일거라 보여지고...

문법적인 오류는 컴파일러가 다 걸러내지만, 주소 공간을 잘못 접근한다거나 초기화되지 않은 변수 사용 등에 대한 오류는 컴파일러가 찾아 내어 주기 어려운 부분이다 보니...

사용자가 사용되는 변수들이 제대로 잘 사용될 수 있도록 주의를 기우려서 사용하셔야 합니다.

변수들이 초기화되지 않아 발생하는 경우도 많이 있기 때문에, 변수가 사용되기 전에 반드시 초기화한 후에 사용될 수 있도록 주의를 기울여야 하고요.

변수 선언없이 사용할 수 있는 개발언어들도 많이 있는데, 그런 언어들도 번거로워도 가급적 선언해서 사용할 수 있도록 하고, 컴파일 설정에서 선언되지 않고 사용되는 변수에 대해 컴파일시 경고를 줄 수 있도록 해서 사용하는게 좋겠고...

변수명들도 a1, a2 등의 형식이 아니라 서로 명확하게 구분되는 이름과 규칙을 정해서 사용하는 게 좋겠고요.

대문자 I와 소문자 l 등의 구분이 어려운 변수에 대해서도 주의해서 사용하는게 좋을것 같고...


의심가는 변수들 부터해서 변수가 사용되기 직전 시점들에 브레이크 포인트나 값을 화면에 표시하도록해서 값들이 어떻게 변화되는지를 추적해가며 분석해 보면 문제의 원인을 찾을 수 있지 않을까 싶어 보이네요.

코딩초보1221 | 약 2년 전

지적 감사합니다 끙끙 앓다가 겨우 예외 처리 안한 부분에서 오버플로가 일어나는거 같더라고요 .. 

덕분에 해결했습니다!

차바라기
  0 추천 | 약 2년 전

코딩초보1221 | 약 2년 전

제가 프로그래밍한 것에서는 문제가 없다 판단하여 저nt 파일의 역할을 정확하게 알고싶었으나 .. 제 실수였던거 같아요 추가적으로 Crush Dump 분석하려고 구글링 했을때 못봤던 부분들도 있어서 또다른 지식 얻어 갑니다 감사합니다 !