[debugging] gdb가 명령 기록을 저장하도록하려면 어떻게해야합니까?

gdb명령 기록을 저장하도록 어떻게 설정 합니까? 새 gdb세션을 시작할 때 화살표 위로 키를 사용하여 이전 세션의 명령에 액세스하고 싶습니다.



답변

짧은 답변: echo 'set history save on' >> ~/.gdbinit && chmod 600 ~/.gdbinit


긴 대답 :

명령 기록은 GDB 매뉴얼 22.3 명령 기록 에서 다룹니다 . 파일을 작성 $HOME/.gdbinit하고 권한을로 변경 한 0600후 다음 컨텐츠를 추가하십시오.

set history save on

다음과 같이 저장된 과거 명령 수를 설정할 수 있습니다. 명령은 “gdb가 기록 목록에 유지하는 명령 수를 설정합니다. 기본값은 환경 변수 GDBHISTSIZE의 값이거나이 변수가 설정되지 않은 경우 256입니다. GDBHISTSIZE의 숫자가 아닌 값은 무시됩니다. size가 무제한이거나 GDBHISTSIZE가 음수이거나 빈 문자열이면 gdb가 히스토리 목록에서 유지하는 명령의 수는 무제한 입니다.

set history size <size>

관련 명령은 set history remove-duplicates <count>입니다. “명령 기록 목록에서 중복 기록 항목 제거 제어” 로 설명 합니다. count가 0이 아닌 경우 gdb는 마지막 개수 기록 항목을 다시보고 현재 항목과 중복되는 첫 번째 항목을 제거합니다. count가 무제한이면이 lookbehind가 제한되지 않습니다. count가 0이면 중복 기록 항목 제거가 비활성화 됩니다.

set history remove-duplicates <count>

기본적으로 gdb는 기록을 현재 디렉토리의 ./.gdb_history 파일에 저장합니다 . 명령 히스토리가 현재 디렉토리에 의존하지 않게하려면 다음도 포함하십시오.

set history filename ~/.gdb_history


답변

여전히 문제가 발생하면 HISTSIZE 환경 변수가 적절한 숫자인지 확인하십시오. 광산은 비어 있었고 gdb의 “기록 크기”설정은 기본적으로 0입니다.

추가

export HISTSIZE=100000000

~ / .bashrc에 모든 것이 팽창합니다.

gdb 내부에서 “쇼 이력”을 수행하여 gdb 이력 설정을 확인할 수 있습니다.

gdb$ show history
expansion:  History expansion on command input is off.
filename:  The filename in which to record the command history is "/home/xiao/.gdb_history".
save:  Saving of the history record on exit is on.
size:  The size of the command history is 100000000.

로부터 문서 :

기록 크기 크기 설정
설정 내역 크기 제한
설정 GDB는 기록 목록에 유지 명령의 수. 기본값은 환경 변수 HISTSIZE의 값이거나이 변수가 설정되지 않은 경우 256입니다. 크기가 무제한이면 GDB가 기록 목록에서 유지하는 명령의 수는 무제한입니다.


답변