본문 바로가기
컴퓨터 관련/Linux || Unix

[Linux] gdb 긴 문자열 전부 출력하는 방법

by _BlankSpace 2018. 6. 20.

gdb를 사용하다가 string이 전부 나오지 않아서 확인을 못했던 경우가 종종 있었다.

이러한 경우, 해당 문자열을 모두 확인하는 방법은 굉장히 간단하다.


먼저, 아래 사진을 보면 간단한 예제를 확인할 수 있을 것이다.

cgdb를 사용하여, 아래 문자열을 반복해서 string 변수에 더하도록 하는 예제이다.


예제 이미지의 gdb 화면에서 str를 출력해보았을 때 전부 출력되지 않는 것을 볼 수 있다. 잘 보면 끝에 "..."으로 끝나고 있다.


이러한 문제를 해결하는 것은 간단하다.

1
set print elements 0
cs
위의 문자열을 gdb에 입력해주면 문자열 전부를 확인할 수 있을 것이다.


그럼, 위의 문자열을 적용하였을 때, str를 다시 출력해보자.

위처럼, str의 모든 값이 출력되는 것을 확인할 수 있을 것이다.


GDB manual에 따르면, 아래처럼 되어 있는 데...

1
set print elements number-of-elements
cs

gdb가 출력할 element 수를 설정할 수 있다. 이때, 기본값은 200으로 되어 있어서, 위처럼 잘렸던 것이다.

이 값을 0으로 설정하면, 제한이 사라지므로, 모든 값을 출력하고자 한다면 0으로 설정하면 될 것이다.

댓글