나는 ddd, nemiver, emacs, vim 또는 다른 프론트 엔드를 사용해야한다고 대답하지 말고 gdb를 그대로 선호하지만 일부 터미널 색상으로 출력을보고 싶습니다.
답변
.gdbinit
~/.gdbinit
색상을 가지도록 조정할 수 있습니다 . mammon을 .gdbinit
사용할 수 있습니다 :
https://github.com/gdbinit/gdbinit
원하는만큼 조정할 수도 있습니다. 나는 이 SO 답변 덕분에 이것을 발견했다 . 얻을 수있는 출력 종류는 다음과 같습니다.
GitHub 리포지토리도 사용할 수 있습니다 : https://github.com/gdbinit/Gdbinit
참고로, 동일한 아이디어가 lldb 에도 적용되었습니다 .
GDB 대시 보드
동일한 개념에 따라 GDB 대시 보드 는 Python에서 GDB를위한 모듈 식 시각적 인터페이스를 제공합니다.
(보이드) 워커
또 다른 유사한 프로젝트는 GDB의 Python 지원을 사용하여 확장 성을 제공하므로 https://github.com/dholm/voidwalker를 확인 하십시오.
@dholm은 또한 이전 .gdbinit에서 영감을 얻은 .gdbinit를 제공합니다 .
pwndbg
일부 프로젝트는 개선 된 디스플레이를 포함하여 유용한 기능 세트를 제공합니다. PEDA 또는 pwndbg 의 경우입니다 . 후자는 다음과 같은 설명을 제공합니다.
PEDA 대체품. 우리의 좋은 친구의 정신
windbg
,pwndbg
발음된다pwnd-bag
.
- 속도
- 복원력
- 깨끗한 코드
PEDA와 유사한 디버깅 및 개발 개발을 지원하는 명령을 제공하며 더 나은 표시가 가능합니다 (프로젝트의 주요 초점은 아니지만). 소프트웨어가 아직 개발 중이며 아직 제대로 릴리스되지 않았습니다.
볼트론
프로젝트 설명 상태 :
Voltron은 해커를위한 확장 가능한 디버거 UI입니다. 다른 터미널에서 실행되는 유틸리티 뷰를 디버거 (LLDB 또는 GDB)에 연결하여 디스 어셈블리, 스택 내용, 레지스터 값 등과 같은 유용한 정보를 표시하면서도 이전과 동일한 디버거 CLI를 제공합니다.
.gdbinit
자동으로 통합하도록을 수정할 수 있습니다 . 그러나 디스플레이 자체는 GDB 외부에 있습니다 (예 : tmux 분할).
GEF
GEF 는 또 다른 옵션이며 다음과 같이 설명됩니다.
동적 분석 및 익스플로잇 개발 과정에서 Python API를 사용하여 GDB에 추가 기능을 제공하기 위해 주로 익스플로 터 및 리버스 엔지니어가 사용하는 것이 목표입니다.
답변
색상은 아니지만 gdb의 텍스트 gui를 고려하십시오 . 사용 가능한 gdb와는 크게 다릅니다.
다음과 같이 시작할 수 있습니다.
gdb -tui executable.out
스크린 샷 :
보다시피 주요 기능은 다음과 같습니다.
- 소스의 어떤 라인과 주변 라인을 보여줍니다
- 중단 점 표시
답변
나는 당신이 프론트 엔드를 원하지 않았다는 것을 알고 있습니다. 그러나 cgdb 는 gdb와 매우 비슷하지만 텍스트 모드이지만 코드에서 구문 강조 표시가있는 위의 소스 창이 있습니다.
답변
색상을 사용하여 gdb의 모양을 크게 향상시킬 수 있습니다. 이는 다음 방법 중 하나를 통해 수행됩니다.
-
“프롬프트 프롬프트”를 통한 컬러 프롬프트. 예를 들어, 프롬프트를 굵고 빨간색으로 표시하십시오.
set prompt \033[1;31m(gdb) \033[m
또는 프롬프트를 굵고 빨간색으로 새 모양으로 만듭니다.
set prompt \033[01;31m\n\n#####################################> \033[0m
-
후크를 통한 컬러 명령
- “list”명령의 색상이 지정된 구문 강조 표시.
모든 예제는 Michael Kelleher가 작성한 다음 블로그 게시물에서 볼 수 있습니다.
답변
다가오는 GDB 8.3의 새로운 기능 !
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blob;f=gdb/NEWS
이제 CLI 및 TUI에 터미널 스타일을 사용할 수 있습니다. GNU 소스 하이라이트는 또한 소스 코드 스 니펫의 스타일을 제공하는 데 사용될 수 있습니다. 자세한 정보는 아래의 “스타일 설정”명령을 참조하십시오.
답변
#into .gdbinit
shell mkfifo /tmp/colorPipe
define hook-disassemble
echo \n
shell cat /tmp/colorPipe | c++filt | highlight --syntax=asm -s darkness -Oxterm256 &
set logging redirect on
set logging on /tmp/colorPipe
end
define hookpost-disassemble
hookpost-list
end
define hook-list
echo \n
shell cat /tmp/colorPipe | c++filt | highlight --syntax=cpp -s darkness -Oxterm256 &
set logging redirect on
set logging on /tmp/colorPipe
end
define hookpost-list
set logging off
set logging redirect off
shell sleep 0.1s
end
define hook-quit
shell rm /tmp/colorPipe
end
define re
hookpost-disassemble
echo \033[0m
end
document re
Restore colorscheme
end
경고 : 버기. TUI 지원, ‘사용자 모드’해킹이 없습니다.
여기서 주요 부분을 찾아서
약간 수정했습니다. 강조 표시, c ++ filt가 필요합니다. 색상이 엉망이되면 명령을 다시 발행하십시오.
답변
cgdb
보다 훨씬 낫다 gdb -tui