본문 바로가기

GDB5

리눅스(Linux) gdb로 디버깅해보자 [1] - 시작 및 종료, 소스 출력 요즘 같이 다양한 IDE가 나오면서, 리눅스에서 기본으로 사용할 수 있는 GDB를 사용하는 사람이 그리 많지는 않으리라 생각합니다. 하지만, 임베디드 개발자나 일부 서버 관련 작업을 하는 사람들은 여전히 VIM 및 GDB를 사용하는 사람들이 있습니다. 왜냐하면, 가볍기도 하고, GUI를 확인할 수 없는 작업에서는 결국 gdb를 이용한 디버깅이 최선이기 떄문입니다. 저 역시도 아직 사용하고 있습니다.. 아무래도 저의 개발 컴퓨터에서는 여러 창들을 킨 상태에서 Visual Studio Code를 사용하여 디버깅을 하려고 하니, 너무 버벅거려서 gdb를 사용하고 있습니다. 아무튼, gdb를 사용하는 것이 귀찮을 수는 있겠지만, 일단 배워놓으면 좋지 않을 것은 없다고 생각합니다. 그래서 이번 기회에 gdb 내용.. 2019. 7. 14.
[gdb] gdb 소스코드와 함께 디버깅 하는 방법 (layout) 리눅스에서 프로그램을 코딩할 때 따로 IDE를 사용하는 것이 있다면 모르겠지만..기본적으로 gdb를 사용해서 디버깅을 할 것이다. gdb의 기능은 무궁무진하기도 해서..활용을 잘하면 굉장한 디버깅 툴이긴 하다. 이런 gdb에 단점이 있었다면 프로그램 코드를 함께 보면서 디버깅을 진행할 수가 없어서 불편했었다.그래서 필자 같은 경우에는 프로그램 코드를 따로 켜서 진행했었는데.. 역시, 무식하면 몸이 고생한다는 걸까..gdb도 프로그램 코드를 따로 보면서 진행할 수 있었다.. 물론 cgdb를 이용하면 쉽지만, 임베디드 시스템에서 디버깅을 하다보면, cgdb를 이용하지 못하는 경우가 있으므로.. 여튼, gdb에서 프로그램 코드를 함께 보면서 디버깅 하는 방법을 소개하려고 한다. 먼저, gdb를 실행한 후, 아.. 2018. 7. 21.
[Linux] gdb 긴 문자열 전부 출력하는 방법 gdb를 사용하다가 string이 전부 나오지 않아서 확인을 못했던 경우가 종종 있었다.이러한 경우, 해당 문자열을 모두 확인하는 방법은 굉장히 간단하다. 먼저, 아래 사진을 보면 간단한 예제를 확인할 수 있을 것이다.cgdb를 사용하여, 아래 문자열을 반복해서 string 변수에 더하도록 하는 예제이다. 예제 이미지의 gdb 화면에서 str를 출력해보았을 때 전부 출력되지 않는 것을 볼 수 있다. 잘 보면 끝에 "..."으로 끝나고 있다. 이러한 문제를 해결하는 것은 간단하다.1set print elements 0cs위의 문자열을 gdb에 입력해주면 문자열 전부를 확인할 수 있을 것이다. 그럼, 위의 문자열을 적용하였을 때, str를 다시 출력해보자.위처럼, str의 모든 값이 출력되는 것을 확인할 수.. 2018. 6. 20.
[GDB] gdb breakpoint 정리 혹시, gdb에 대해서 아시나요? 프로그래밍을 할 때, 디버깅을 하기 위해서 툴 하나씩은 다루실 것입니다. 물론, 아직 다루시지 않는 분들도 계실 것입니다. 혹시 아직도 printf로 어디가 문제 있는 지 찾는 분 계시나요? 물론, 저도 처음에는 그랬습니다. 이 방법은 굉장히 시간이 오래 걸리는 방법입니다. 특히, 임베디드 시스템은 훨씬 오래 걸리게 됩니다. 왜냐하면 컴파일을 하는 시간이 굉장히 길기 때문에 신중하게 고쳐야 하거든요. 그래서 오늘은 디버깅 툴 중 하나인 강력한 디버깅 툴인 gdb의 기능을 정리하고자 합니다. 보통 gdb를 어려워 하는 이유는 breakpoint를 어떻게 잡아야할 지에 대한 막막함 때문이라고 생각합니다. 따라서 gdb의 breakpoint를 거는 방법에 대해 정리해보고자 합.. 2017. 4. 27.