화면 상단에 소스 코드를 표시하는 대신 gdbtui
또는 ctrl+x
아래 gdb
에 탭 사이를 이동하는 버퍼를 Vim 편집기에서보고 싶습니다.
어떻게해야합니까?
화면 상단에 소스 코드를 표시하는 대신 gdbtui
또는 ctrl+x
아래 gdb
에 탭 사이를 이동하는 버퍼를 Vim 편집기에서보고 싶습니다.
어떻게해야합니까?
답변:
내가 시도한 모든 플러그인 중에서 ConqueGDB 가 최선의 방법이라는 것을 알았 습니다. ConqueGDB는 Conque Shell 을 사용하여 GDB가 사용하는 대화식 쉘을 vim에 포함 시킵니다 .
ConqueGDB의 워크 플로는 GDB 터미널에서 GDB 명령을 입력하지 않고 vim 소스 코드에서 바로 가기를 사용합니다. 그러나 고급 명령을 원할 경우 GDB 프롬프트를 계속 사용하거나 전체 디버그 세션을 보려면 스크롤 할 수 있습니다.
일부 ConqueGDB 기본 매핑은 다음과 같습니다.
vim 커서 라인이 GDB '인쇄 행'을 발행하는 데 어떻게 사용되었으며, 현재 코드 실행이 다른 라인 (14)에 있고 10 행에 중단 점이 있습니다.
예를 들어 Vundle과 함께 설치하려면 :
Plugin 'vim-scripts/Conque-GDB'
다음 플러그인 옵션을 사용합니다.
let g:ConqueTerm_Color = 2 " 1: strip color after 200 lines, 2: always with color
let g:ConqueTerm_CloseOnEnd = 1 " close conque when program ends running
let g:ConqueTerm_StartMessages = 0 " display warning messages if conqueTerm is configured incorrectly
leader
뜻입니까?
<leader>r
내 컴퓨터에서 <kbd> \ </ kbd> + <kbd> r </ kbd>을 의미합니다. Vim manual에는 다음과 같은 항목이 있습니다.:help leader
<Leader>b
. 커서 위치에 중단 점을 설정합니다. 그러나 이것은 토글이 아니므로 다시 제거 할 수 없습니다. 오히려 GDB 프롬프트에 'clear'를 써야합니다.
gdb를 통합하는 여러 플러그인이 있습니다.
그리고 LLDB를 통합하는 플러그인도 있습니다 (LLVM 프로젝트에서)
Bram은 현재 (2017 년 9 월) 새로운 :terminal
기능 덕분에 vim 내에서 gdb 통합을 위해 노력하고있는 것 같습니다 . 이를 사용하려면 (로 ) termdebug
패킷 을로드 :packadd termdebug
한 다음을 사용하여 vim 창에서 gdb 콘솔을 시작할 수 있습니다 :TermDebug (+options)
. IMO는 Vim에서 GDB 통합의 미래라고 생각할 수 있습니다.
GDB edit
명령
다음 명령을 사용하여 현재 줄에서 편집기를 엽니 다.
$EDITOR +<current-line> <current-file>
기본값 editor
은입니다 ex
만 형식 vim
도 이해 +<current-line>
합니다.
편집기를 종료하면로 돌아갑니다 gdb
.
이를 통해 소스를 자유롭게 탐색 할 수 있으며 ctags
통합 된 경우 특히 강력합니다 .
이것은 빈약 한 사람의 내장 gdb-vim 통합 방법입니다. 가장 중요한 것은 Vim에서 중단 점을 설정하는 것입니다.
edit
그리고 중심
edit
소스를 중심으로 Vim을 기본적으로 중심에 두지 않으므로이를 수행하는 Python 스크립트를 작성했습니다. https://stackoverflow.com/questions/43557405/how-to-open-the-current-file-at-the- gdb / 43557406에서 현재 텍스트 라인 편집기
클립 보드 도우미에 대한 중단 점 명령
이 vim 명령은 다음 유형의 중단 점 지정자를 복사합니다.
b <file-path>:<line-number>
클립 보드로 :
command! Xg :let @+ = 'b ' . expand('%:p') . ':' . line('.')
그런 다음에 붙여 넣을 수 있습니다 gdb
.
이것은 중단 점을 쉽게 설정하기 위해 gdb에 대한 빈약 한 사람의 vim 통합입니다.
참조 : https : //.com/questions/3536600/do-you-debug-c-code-in-vim-how
기술적으로는 좋지 않습니다. cgdb는 vim과 같은 키 바인딩을 사용하는 gdb의 curses 버전입니다. 수년간 내 goto 디버거였습니다.