Close

리눅스 디버깅 예제

https://developer.mozilla.org/en/Debugging_Mozilla_on_Linux_FAQ디버깅 기호가 활성화된 프로그램을 컴파일한 경우 디버깅을 시작할 준비가 된 것입니다. 대체해야 할 텍스트가 있을 때마다 에 넣었습니다. 나는 명령을 보여주지만 출력을 보여주지 않는 “gdb 예제”를 온라인으로 찾는 데 조금 좌절합니다. gdb는 GNU 디버거, 리눅스의 표준 디버거입니다. 나는 나에게 줘 15 분을 볼 때 예제 출력의 부족을 생각 나게하고 난 고맙게도, 출력을 포함 CppCon 2015에서 그렉 법에 의해 GDB 이야기의 보기를 변경합니다! 그것은 15 분 가치가 있습니다. 또한 출력과 막다른 끝을 포함한 모든 단계를 포함하는 전체 gdb 디버깅 예제를 공유하도록 영감을 주었습니다. 이것은 특히 흥미롭거나 이국적인 문제가 아니며 일상적인 gdb 디버깅 세션일 뿐입니다. 그러나 그것은 기본을 커버하고 마음에 내가 여기에 사용하는 것보다 gdb에 더 많은이 베어링, 종류의 튜토리얼 역할을 할 수 있습니다. -g 옵션으로 C 프로그램을 컴파일합니다. 이렇게 하면 컴파일러가 디버깅 정보를 수집할 수 있습니다. 우리는 bcc 도구를 디버깅하고 있기 때문에, cachetop.py, 그것은 BCC의 trace.py 내 이전 uprobe 도구와 같은 기능을 가지고 있음을 주목할 필요가있다 : 나는 순간에 이에 대한 gdb를 사용하여 커버 할 것이다, 그러나 나는 내 perf-tools 컬렉션에서 uprobe 도구를 시도 도울 수 없다, 이는 리눅스 ftrace를 사용하여 uprobes. 추적자를 사용하는 한 가지 장점은 gdb와 같이 대상 프로세스를 일시 중지하지 않는다는 cachetop.py 예입니다. 또 다른 장점은 몇 가지 이벤트 또는 몇 천 을 쉽게 추적 할 수 있다는 것입니다.

BCC를 신라면 체크 아웃할 가치가 있습니다. Linux 4.x 시리즈에 있는 새로운 BPF 추적 기능에 대한 파이썬 및 루아 인터페이스를 제공합니다. 요컨대, 이전에는 불가능하거나 엄청나게 비용이 많이 들었던 많은 성능 도구를 실행할 수 있습니다. 나는 우분투 제니얼에 그것을 실행에 대한 지침을 게시했습니다. 또한 YoLinux.com STL 문자열 클래스 자습서 및 GDB와 디버깅을 참조하십시오. –sandbox-debugging 플래그를 전달하지 않는 한 일부 샌드박스 하위 프로세스는 코어를 덤프하지 않을 수 있습니다. 나는 인터넷에서 코드를 가지고 내가 코드를 실행할 때 그것은 나를 디버깅 파일이 내가 무엇을해야할지 존재하지 않는 말한다 유지? 다음 링크는 GDB에서 리눅스, 윈도우, 맥에서 사용할 수있는 도구를 설명합니다. 브라우저와 렌더러 프로세스를 모두 디버깅할 때 별도의 중단점 집합을 적중시킬 수 있습니다. gdb의 명령 파일을 사용하여 중단점을 별도의 파일에 배치하고 gdb에 로드하도록 지시하여 이 작업을 수행할 수 있습니다.

데비안 리눅스에서, cc는 gcc에 대한 소프트 링크입니다. 동일한 컴파일러입니다. 난 지금 편리한 다른 배포산만 없어, 하지만 난 대부분에 대 한 동일 가정 전부.