2011-03-06 4 views
-2

친절하게 말해서 30 초 인터 롤에서 프로그램을 실행하고 잠시 동안 실행하고 이전에주지 않았던 오류를 줄 수 있습니까? 난 정말 너희들에게 감사몇 분 동안 실행 한 후 오류가 발생했습니다.

+1

이것은 이전 질문의 잘린 버전 인 것 같습니다. http://stackoverflow.com/questions/5210735/segmentation-fault-filing-sleep-function –

+0

네가 알고 있고 이해한다면 네가 친절하게 대답 해. 문제. u – tariq

+0

몇 분 전에했던 것처럼 .... 고마워요? –

답변

0

예, 가능합니다. 프로그램이 "작동"한다고해서 그것이 버그가 없다는 것을 의미하지는 않습니다.

특히 메모리 (포인터, 배열 등)를 사용하여 작업 할 때 실수로 작동 할 수있는 경우가 많으며 때로는 완전히 충돌 할 수있는 실수 유형이 많이 있습니다. 실수로 액세스하는 주소의 메모리에있는 값이 무엇이든 관계없이 대부분 임의적입니다.

이러한 종류의 문제를 디버그하려면 Valgrind 및/또는 GDB과 같은 도구를 사용하십시오.

+0

tomalak 선생님 나는 gdb를 시도하고 프로그램 오류 신호 SIGSEGV, 세분화 오류를 수신했다. /lib/tls/i686/cmov/libc.so.6에서 getc()의 0x0018d9bd. 내가 prot에 serveral getc 문이 있는지 물어 보지 않으려면 정확한 라인을 알고 싶습니다. – tariq

+0

@randy : 디버거를 사용하는 법을 배워야합니다. 그것은 StackOverflow와 같은 사이트의 범위 밖에 있습니다. http://www.amazon.com/Debugging-GDB-GNU-Source-Level-Debugger/dp/1882114884 –

+1

@Downvoter와 같은 책을 제안 해주십시오. 비꼬는 트롤에 대한 의견을 남겨주세요. –

2

예를 감사로 감사 내 질문에 친절하게 날을 투표 해달라고 잘못된 경우이

을 중지하는 방법 그냥 내 의도 중 하나를 상처 나 바보 같은 질문을하지 않는 것입니다 말해 프로그램이 일정 기간 동안 작동 한 다음 실패 할 수 있습니다.

Valgrind을 사용해 보셨습니까?

+0

아니,하지만 고마워 많이 내가 그것을 시도해 줄 것입니다 – tariq

0

자세한 내용 없이는 대답하기에 충분하지 않습니다. 그러나 가장 좋은 방법은 디버거를 사용하여 프로그램을 실행하는 것입니다. 따라서 프로그램이 종료 될 때 수행중인 작업이나 문제가 발생했는지 확인할 수 있습니다. GDB은 널리 사용되는 무료 디버거입니다.

+0

고마워요 귀하의 우려에 대해 선생님 내가 surly 그것을 시도하고 GDB에 관한 도움이 필요하면 내가 물어볼 것입니다? – tariq

관련 문제