컴퓨터 관련/Linux || Unix

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

_BlankSpace 2018. 6. 20. 23:49

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으로 설정하면 될 것이다.