GDB

포스트: 5|아이템:GDB(5)
Tags

Posts

5 posts

[리눅스] 라즈베리 파이: coredump 추출 방법 + gdb 디버깅 방법

Guillermo Austin Kim|2022년 3월 14일

이번 포스트에서는 라즈베리 파이에서 coredump가 생성되도록 설정하는 방법과 GDB로 coredump를 로딩하는 방법을 소개합니다. coredump 생성 1. coredump 파일 사이즈 설정 'ulimit -a' 명령어를 입력하면 coredump 파일의 사이즈가 출력됩니다. root@raspberrypi:/home/pi/work/test_coredump# ulimit -acore file size (blocks, -c) 0data seg size (kbytes, -d) unlimitedscheduling priority (-e) 0file size (blocks, -f) unlimitedpending signals

[GDB] Arm(Armv7): C 코드와 어셈블리 코드를 동시에 디버깅하기

Guillermo Austin Kim|2021년 3월 31일

이번 포스트에서는 GDB를 사용해 디버깅을 하는 방법을 소개합니다. 소개된 내용을 참고하면 즐겁게 어셈블리 명령어를 디버깅할 수 있습니다. 환경: 라즈베리 파이4 GDB 실행 아래 명령어를 사용해 GDB를 Text User Interface 모드로 실행합니다. $ gdb -tui armv7_aapcs_proc 다음은 위 명령어로 실행한 화면입니다. 이제 바로 다음 명령어를 입력해 어셈블리 명령어 창을 보이도록 합시다. $ layout split 이번에는 'b main'와 'r' 명령어를 입력해 main() 함수에 브레이크 포인트를 걸고 프로그램을 실행합니다. 위 명령어를 입력하면 다음과 같은 화면이 보입니다. 위 화면과 같이 main() 함수의 첫 번째 라인에 브레

[리눅스] GDB 프로그램 사용 위치 파악: 'which -a'

Guillermo Austin Kim|2020년 6월 4일

gdb와 같은 프로그램이 설치된 경로를 확인하고 싶을 때가 있습니다.이 때 다음 명령어를 사용하면 됩니다. 'which -a' 아래는 터미널에서 'which -a' 명령어를 사용한 예시입니다. baldcandy:#/etc$ which -a gdb-multiarch/usr/bin/gdb-multiarch gdb-multiarch가 '/usr/bin/gdb-multiarch' 에 위치해 있군요. 이번에는 gdb 프로그램의 위치를 확인해보겠습니다. baldcandy:#/etc$ which -a gdb/usr/bin/gdb gdb가 '/usr/bin/gdb' 에 위치해 있군요. ---"이 포스팅이 유익하다고 생각되시면 공감 혹은 댓글로 응원해주시면 감사하겠습니다. "혹시 궁금한 점이 있으면 댓글로 질

[리눅스][디버깅] GDB로 깨진 콜 스택 복원하기(공유 라이브러리 로딩하는 방법)

Guillermo Austin Kim|2020년 6월 2일

리눅스 프로젝트를 개발하면 코어덤프(coredump)를 열어서 크래시가 발생한 원인을 분석할 때가 많습니다.많은 개발자 분들이 코어덤프를 열어서 크래시가 발생한 원인을 분석하죠. 코어덤프를 열어 gdb를 사용해 디버깅할 때 가장 짜증나는 것 중 하나는 공유 라이브러리를 제대로 로딩하지 못해콜 스택이 보이지 않을 때 입니다. 이번에는 코어덤프를 로딩할 때 필요한 정보 중 하나인 공유 라이브러리의 정보(패스/이름)을 확인하는 방법을 소개합니다. 깨진 콜 스택 확인하기 먼저 콜 스택을 보겠습니다. (gdb) bt#0 0x0000007f7def1808 in __glibc_raise (sig=sig@entry=6) at /usr/glibc/raise.c:1354#1 0x0000007f7def2d80 in