GDB (GNU 프로젝트 디버거라고도 함)는 사용자와 개발자 모두가 다른 프로그램의 '내부'에서 실행되고있는 동안 또는 응용 프로그램이 실행되는 이유를 볼 수있는 오픈 소스 및 무료 명령 행 소프트웨어입니다. 특정 시점에 충돌합니다.
기능 요약
주요 기능에는 개발자가 작업에서 버그를 파악하고, 응용 프로그램을 시작하고, 동작에 영향을 줄 수있는 사항을 지정하고, 지정된 조건에서 프로그램을 중지하고, 응용 프로그램이 충돌했을 때 로그를 검토하고, 하나의 이슈의 영향을 수정하기위한 실험을위한 프로그램, 그리고 다른 버그에 대해 계속 배우는 것. 또한 C, C ++, Pascal, Ada, Objective-C 등 많은 프로그래밍 언어로 작성된 프로그램의 디버깅을 지원합니다.
명령 행 응용 프로그램입니다.
GNU 프로젝트 디버거는 항상 커맨드 라인 어플리케이션이 될 것입니다. 이를 사용하려면 & ldquo; gdb & rdquo;를 실행해야합니다. 명령을 터미널 에뮬레이터에서 실행 한 다음 & ldquo; help & rdquo; 명령 (따옴표없이) gdb 프롬프트. 또한 & ldquo; help all & rdquo;을 입력 할 수도 있습니다. 명령을 사용하여 모든 명령 목록을 보려면 "help"를 입력 한 다음 명령 이름을 입력하여 전체 설명서를보고 "help"를 입력 한 다음 클래스 이름을 입력하여 해당 클래스의 명령 목록을보고 "apropos word"를 입력하여 검색하십시오 "단어"와 관련된 명령의 경우.
명령 클래스 목록
입력 후 & ldquo; help & rdquo; 명령은 별칭 (다른 명령의 별칭 표시), 중단 점 (프로그램이 특정 지점에서 중지되도록), 데이터 (데이터 검사 용), 파일 (파일 검사 용) 실행 (프로그램 실행), 스택 (상태 검사), 지원 (지원 기능), 추적 점 (프로그램 실행을 추적하지 않음), 내부 (유지 관리 명령), 불분명 한 기능 프로그램 중지) 및 사용자 정의 (사용자 정의 명령).
지원되는 하드웨어 플랫폼 및 OS
GDB는 Microsoft Windows 및 가장 인기있는 Linux / UNIX 변형과 같은 주류 운영 체제에서 실행되는 교차 플랫폼 응용 프로그램이되도록 오프셋에서 설계되었습니다. 이 릴리즈의 새로운 기능 :
PR gdb / 22824 (GDB에서 새로운 rbreak 파이썬 기능에 대한 잘못된 설명) 8.1 뉴스 파일)
PR gdb / 22849 (확장 원격에서 ctrl-c가 작동하지 않음)
PR gdb / 22907 ([회귀] gdbserver는 파일 이름 전용 바이너리에서는 작동하지 않음)
PR gdb / 23028 (일관성없는 vcvtpd2dq 디스 어셈블)
PR gdb / 23053 (수정 -D_GLIBCXX_DEBUG gdb-add-index 회귀)
PR gdb / 23127 (높은 가상 주소를 사용하는 소프트웨어를 디버깅하는 데 [AArch64] GDB를 사용할 수 없음)
PR 서버 / 23158 (Windows에서 gdbserver가 더 이상 작동하지 않음)
PR 중단 점 / 23210 ([8.1 / 8.2 회귀] 0xf7fe7dd3에서 0xfffffffff7fe7dd3까지 조정 된 가짜 중단 점 주소)
버전 8.1의 새로운 기능 :
C ++ 함수의 중단 점은 기본적으로 모든 범위에서 설정됩니다 ( "와일드"일치).
C ++ ABI 태그로 표시된 함수에 중단 점 삽입 지원;
표현 평가 중 대상 부동 소수점 에뮬레이션 (MPFR 3.1 이상 필요).
다양한 Python 스크립팅 개선 사항.
개선 된 녹 지원; 특히 Rust 코드를 디버깅 할 때 Trait 객체를 검사 할 수 있습니다.
GDB는 더 이상 오류를 일으키지 않고 종종 혼란스러운 결과를 피하기 위해 디버깅 정보없이 심볼 유형에 대한 가정을하지 않습니다.
'enable'및 'disable'명령은 이제 다양한 중단 점 위치를 허용합니다.
새로운 'starti'명령으로 첫 번째 명령에서 프로그램을 시작합니다.
새로운 'rbreak'명령으로 정규 표현식 패턴을 통해 여러 개의 중단 점을 삽입합니다 (Python 필요).
'ptype'명령은 이제 struct의 필드 오프셋 및 크기 인쇄를 지원합니다.
'gcore'명령은 이제 모든 메모리 매핑을 덤프하는 것을 지원합니다 ( '-a'명령 행 옵션).
TUI 단일 키 모드의 새로운 단축키 : stepi는 'i'이고 nexti는 'o'입니다.
GDB 서버 개선 사항 :
GDB 서버로 환경 변수 전송 지원;
지정된 초기 작업 디렉토리로 하위 프로세스를 시작하도록 지원합니다.
유닉스 시스템에서, 확장 명령 행렬 (globbing expansion)과 열등한 명령 행 인자의 변수 대체를 지원합니다.
다양한 완료 향상;
'compile'명령을 사용하여 코드를 컴파일하고 삽입하는 데 사용되는 명령을 구성 할 수 있습니다.
디버깅 정보가 필요없는 경우 GDB 시작 속도를 높이기위한 새로운 '--readnever'명령 행 옵션.
다음과 같은 새로운 기본 구성을 지원합니다.
FreeBSD / aarch64 (aarch64 * - * - freebsd *);
FreeBSD / arm (arm * - * - freebsd *);
다음 새 대상 지원 :
FreeBSD / aarch64 (aarch64 * - * - freebsd *);
FreeBSD / arm (arm * - * - freebsd *);
OpenRISC ELF (or1k * - * - elf)
다음 대상 및 기본 구성에 대한 지원이 제거되었습니다.
Solaris2 / x86 (i? 86 - * - solaris2. [0-9]);
Solaris2 / sparc (sparc * - * - solaris2. [0-9]);
버전의 새로운 기능 :
GDB의이 버전을 빌드하려면 다음 도구가 필요합니다 :
C ++ 11 컴파일러 (예 : GCC 4.8 이상).
GNU make 버전 3.81 이상.
이 릴리스의 변경 사항은 다음과 같습니다.
C ++ : rvalue 참조 지원
파이썬 스크립팅 개선 사항 :
실행중인 btrace 기록을 시작, 중지 및 액세스하는 새로운 기능.
gdb.Type의 Rvalue 참조 지원.
GDB 명령 인터프리터 :
사용자 명령은 이제 무제한의 인수를 허용합니다.
"eval" 명령은 이제 사용자 정의 인수를 확장합니다.
DWARF 버전 5 지원
(해당 .debug_names 색인은 아직 지원되지 않음).
GDB / MI 개선 사항 :
새로운 -file-list-shared-libraries 명령은 프로그램에서 공유 라이브러리를 나열합니다.
새로운 -target-flash-erase 명령을 사용하여 플래시 메모리를 지 웁니다.
기본 FreeBSD / mips (mips * - * - freebsd) 지원
다음 대상 지원 :
Synopsys ARC (arc * - * - elf32)
FreeBSD / mips (mips * - * - freebsd)
기타 개선 사항 :
MS-Windows 호스트에서 명령 줄 리디렉션이 지원됩니다.
MS-Windows에서 스레드 이름 지원.
GNU / Linux에서 PKU 레지스터 지원.
sparc32 및 sparc64에서 대상 설명을 지원합니다.
플래시 메모리를 지우는 새로운 GDB / CLI 명령
rdrand 및 rdseed 명령은 기록 / 재생을 지원합니다.
다음 기능에 대한 지원이 제거되었습니다.
gcj로 컴파일 된 Java 프로그램 지원
다음 구성 지원 :
FreeBSD / alpha (alpha * - * - freebsd *)
GNU / kFreeBSD / alpha (alpha * - * - kfreebsd * -gnu)
PR 빌드 / 18033 (gdb / iq2000-tdep.c 및 gdb / compile / compile - *. c에서 사용되는 C ++ 스타일 주석)
버전 7.9.1의 새로운 기능은 다음과 같습니다. )
PR 빌드 / 18298 (quadruplet 대신에 triplet으로 구성된 툴의 경우 "compile"명령으로 컴파일러를 찾을 수 없음)
PR tui / 18311 (TUI 모드에서 레지스터를 표시 할 때 임의의 SEGV)
PR 파이썬 / 18299 (상세 모드로 전역 예쁜 프린터 등록시 예외)
PR python / 18066 (인수 "word"는 Command.complete (text, word)에서 깨졌습니다.)
PR 파스칼 / 17815 (테스트 케이스를 사용하여 클래스 필드의 파스칼 동작 수정)
PR 파이썬 / 18285 (ptype expr-with-xmethod가 SEGV를 발생 시킴)
버전 7.9의 새로운 기능 :
Python 스크립팅 개선 사항.
소스 코드 컴파일 및 하위에 주입.
새로운 명령, 옵션, 편의 변수 / 옵션.
MIPS SDE 지원 (mips * -sde * -elf *).
스레드 된 프로그램을 디버깅 할 때 신호 처리가 향상되었습니다.
PR symtab / 17642 (7.8 회귀) 내부 오류 : resolve_dynamic_struct : 'TYPE_NFIELDS (type) & gt; 0'주장이 실패했습니다.
버전 7.8.2의 새로운 기능 :
)PR binutils / 17677 (_bfd_elf_get_synthetic_symtab은 O (n ^ 2) 복잡도로 실행 됨)
PR gdb / 16215 (SPARC :이 프레임에 대해 CFA를 계산할 수 없음)
PR gdb / 17525 (target-async : -x 스크립트에서 프로그램을 실행할 때 중단 점 명령이 실행되지 않음)
PR cli / 17828 ([7.8 회귀] - 배치 -ex r은 터미널 중단)
버전 7.8.1의 새로운 기능 :
PR python / 17364 (bound_registers.py에서 더 나은 프린터 이름 필요)
PR 빌드 / 17104 (CFLAGS = "-Wall -Wextra"gdb / confgure --with-babeltrace 실패)
PR gdb / 17345 (babeltrace (1.1.2 이상)는 GDB에 의해 생성 된 ctf 데이터에 대해 불평합니다)
PR 빌드 / 17298 (gcore : 레지스터를 가져올 수 없습니다 : 해당 프로세스 없음)
PR python / 17342 (Xmethod Python은 Python 3과 호환되지 않습니다)
PR python / 17355 (읽을 수없는 arg를 가진 Python 프레임 필터에서 충돌)
PR guile / 17367 (pkg-config 스크립트가 --with-guile에 arg로 제공되었을 때 길드 경로 계산이 잘못됨)
PR gdb / 17247 (gdb는 멀티 스레드 응용 프로그램에서 멈춤)
PR gdb / 17347 (회귀 분석 : GDB가 첨부 된 프로세스로 실행 중지됨)
PR gdb / 17407 (Linux vDSO 읽기 회귀 분석)
PR 서버 / 17457 (aarch64 / gdbserver : 잘못된 부동 소수점 레지스터 표시)
PR 서버 / 17487 (상태 - & gt; dr_control_mirror == 0 Windows의 gdbserver에서 어설 션에 실패했습니다)
PR gdb / 17472 (주석이있는 경우, 포어 그라운드에서 실행 중 입력이 readline / gdb와 충돌 함)
PR gdb / 17471 (배경 명령을 반복하면 전경이됩니다)
PR cli / 17300 (핸들러가없는 상태에서 continue -a & (readline_callback_read_char ()가있는 논스톱 모드에서 충돌이 발생합니다!))
PR python / 17372 (도움말 ()을 표시 할 때 python이 멈춤)
PR 파이썬 / 17408 (../../gdb/infrun.c:5256 : 내부 오류 : switch_back_to_stepped_thread : 어설 션`! schedlock_applies (1) '실패했습니다.)
버전 7.8의 새로운 기능 :
Guile 스크립팅 지원.
파이썬 스크립팅 향상.
새로운 명령, 옵션, 편의 변수 / 옵션.
원격 프로토콜 및 GDB 서버 향상.
새 대상 구성 (PowerPC64 GNU / Linux 리틀 엔디안).
향상된 btrace.
ISO C99 가변 길이 자동 배열 지원.
"비교 섹션" 명령은 이제 모든 대상에서 작동합니다.
"타겟 네이티브" 명령이 이제 기본 대상에 연결됩니다.
버전 7.7의 새로운 기능 :
향상된 Python 스크립팅 지원.
일부 C ++ 개선.
새로운 명령, 옵션, 편의 변수 / 옵션.
몇 가지 GDB / MI 새로운 명령과 개선 사항.
원격 프로토콜 및 GDB 서버 향상.
새로운 타겟 구성 (Nios II, TI MSP430).
GDB Windows x64 unwinding 데이터 지원.
SystemTap SDT 프로브는 AArch64 GNU / Linux에서 지원됩니다.
CTF (Common Trace Format) 지원.
새 스크립트 gcore 및 gdb-add-index.sh.
향상된 arm * -linux 레코드 / 재생 지원.
a.out NetBSD 및 OpenBSD의 구식 구성에 대한 지원이 제거되었습니다. 이러한 구성의 ELF 변형은 계속 지원됩니다.
"set | show remotebaud" 명령은 "show | show serial baud"를 위해 비추천입니다.
PR 브레이크 포인트 / 16251 (포크 후 AArch64 하드웨어 브레이크 포인트 오류)
버전 7.6.2의 새로운 기능 :
PR gdb / 16303 (MIPS16 및 microMIPS의 binutils 2.24에서는 GDB 7.6.1이 작동하지 않음)
버전 7.6.1의 새로운 기능 :
PR tdep / 15420 (최신 Solaris x86, Solaris 10, Update 10 이상에서 스레드 된 프로그램을 디버그 할 수 없음)
PR 원격 / 15455 (QTro 원격 패킷 고장)
PR 빌드 / 15476 (utils.h의 불완전한 enum 유형으로 인한 빌드 실패)
PR 서버 / 15594 (64x32 x86 gdb 서버에서 tls 지원은 주소를 64 비트로 확장하지 않음)
PR 서버 / 15075 ( "next"를 갖는 dprintf inteferes)
PR 서버 / 15434 (dprintf는 논스톱 모드에서도 동기식 '계속'사용)
PR tui / 14880 (분할 레지스터 레이아웃에서 up은 value.c에 어설 션 오류가 발생 함)
PR c ++ / 15519 (특정 코어 파일을 사용하는 GDB 7.6은 GDB 7.5.1보다 94x 느립니다)
PR gdb / 15837 (GDB는 로컬 변수에 대한 엔트리 값을 출력합니다)
PR gdb / 15415 (argv [0] 전달시 gdb가 심볼릭 링크를 해결 함)
PR cli / 15603 (CTRL-C는 더 이상 열등하지 못합니다)
PR gdb / 15604 (gdbserver 소켓 누출 7.5 회귀)
버전 7.5의 새로운 기능 :
Go 언어 지원.
새로운 타겟 (x32 ABI, microMIPS, Renesas RL78, HP OpenVMS ia64).
더 많은 파이썬 스크립팅 개선.
SDT (정적 정의 추적) 프로브는 SystemTap 프로브를 지원합니다.
GDB 서버 향상 (stdio 연결, 중단 점 조건의 대상 측 평가, 원격 프로토콜 개선).
기타 기타 개선 사항 (공유 라이브러리가로드 / 언로드 될 때 중지 할 수있는 기능, 동적 printf 등).
ARM에서 역 디버깅
바이너리 "gdbtui" 버려졌으며 더 이상 지을 수 없습니다. & quot; gdb -tui & quot; 대신.
버전 7.4의 새로운 기능 :
모호한 라인 스펙은 이제보다 일관되게 처리됩니다.
흥미롭지 않은 함수 및 파일은 이제 "건너 뛰기 함수"로 스테핑 할 때 건너 뛸 수 있습니다. 및 "skip file" 명령.
원격 대상 하드웨어 감시 점의 최대 길이 제한을 설정하고 가져 오는 명령이 추가되었습니다.
파이썬 스크립팅이 크게 향상되었습니다.
다른 많은 개선, 버그 수정 및 일반적인 변경이 이루어졌습니다.
버전 7.1의 새로운 기능 :
새로운 타겟 (시뮬레이터 포함) 지원 :
자일링스 마이크로 블레이즈
르네상스 RX
주요 새로운 기능은 다음과 같습니다.
멀티 프로그램 디버깅으로 디버거가
동일한 GDB 세션 내의 하나의 프로그램.
위치 독립 실행 파일 (PIE) 디버깅.
또한 다음과 같은 많은 개선 사항 및 버그 수정 기능을 제공합니다.
파이썬 지원이 확장되었습니다.
C ++ 지원 향상 (네임 스페이스, 캐스트 연산자, 버그 수정)
추적 점 지원 개선.
프로세스 레코드 향상 (실행 로그 저장 / 복원, 하드웨어
워치 포인트 지원).
원격 프로토콜 개선 (Linux 커널 디버깅, 새 패킷
트레이스 포인트 지원)
댓글을 찾을 수 없습니다