DBGMEM

소프트웨어 스크린 샷:
DBGMEM
소프트웨어 정보:
버전: 1.9.2
업로드 날짜: 3 Jun 15
개발자: Moser Michael
라이센스: 무료
인기: 80

Rating: nan/5 (Total Votes: 0)

이 현재는 리눅스에서 작동합니다. DBGMEM는 GNU 약소 일반 공중 사용 허가서의 조건에 따라 출시
이 도구는 다음과 같은 문제를 발견하는 데 도움이
& NBSP; 1. 메모리 누수
& NBSP; 2. 힙 메모리 손상
& NBSP; 3. 잘못 선택한 표준 라이브러리 함수에 불법 인수.
& NBSP; 4. 스택 손상
& NBSP; 5. 해제 또는 초기화되지 않은 힙 메모리의 사용.
& NBSP; 6. 이 도구를 확장 할 수 있습니다, 추가 API의 주장을 확인
이 도구는 기능을 추가하기 위해 GLIBC 메모리 할당 기능, 메모리 및 문자열 조작 기능을 대체합니다.
일부 고급 기능을 사용하기 위해 프로그램을 변경하려면 수도 있지만 DBGMEM는, 프로그램의 변경을 필요로하지 않습니다.
DBGMEM는 C와 C ++ 프로그램을위한 오픈 소스 메모리 디버거이며, Linux 운영 체제에서 실행하고, GNU 약소 일반 공중 라이센스로 배포된다. DBGMEM는 Glibc의 표준 라이브러리의 일부를 디버깅 검사를 추가; 이것은 디버깅 프로세스의 주소 공간에로드 공유 라이브러리로서 구현된다.
도구
DBGMEM는 각각 디버깅 프로그램에로드 할 수있는 여러 메모리 디버깅 도구가 있습니다; 간단한 도구는 모든 할당 된 메모리 블록을 추적하고, 그러한 블록이 할당 된 메모리 블록에 선행 분야 헤더에, 할당 된 시간에 스택으로 부기 정보를 추가한다; 또한 이전과 할당 된 블록 후 가드 단어를 추가; 간단한 도구는 최적의 메모리 누수 문제의 검출에 사용됩니다; 경기장 헤더는 디버깅중인 프로그램에 의해 손상받을 수있다. 했다 검사는 익명의 메모리 매핑 된 파일의 스택에서 모든 책을 지키는 정보를 유지; 이 메모리 덮어 쓰기 버그를 견딜 수있는 도구가 더 강력합니다. 검사 도구는 신속하게 그 힙 블록 내에 포함 된 포인터 값에 대한 힙 블록에 대한 정보를 조회 할 수있는 기능을 추가; 검사 도구는 이러한 기능에 의해 분쇄 가능한 스택에 대한 일반적인 문자열 매개 변수와 메모리 조작 함수, 그리고 검사의 유효성 검사를 추가합니다.
작동 모드
같이 당신은 디버거 대부분의 프로그램을 실행할 수 있습니다; 디버깅 프로그램을 필요로하지 않습니다 도구는 특정 라이브러리와 링크하는 단계; 도구는 DLL 주입 기술에 의해 판정 프로세스의 주소 공간에로드 공유 라이브러리이다. 동적 링커의 LD_PRELOAD 기능은 다른 라이브러리가로드되기 전에 먼저 라이브러리를 공유 도구를로드하는 데 사용됩니다; 메모리 할당과 문자열 조작 함수를 가로 채서 먼저 도구 라이브러리에서 호출; 이는 검사를 추가 할 수있는 도구를 할 수 있습니다. 또한 디버깅 프로세스의 종료 후 처리 원시 보고서 작성 디버깅 프로세스의 실행 시간 동안; 증강 보고서는 원시 보고서에 포함 된 스택 추적을하는 상징적 인 함수 이름을 추가합니다. GDB는 디버거 원시 보고서의 추가 처리를하는 동안 상징적 인 주소로 숫자 주소를 설정하는 데 사용됩니다

특징 :.

메모리 누수; 이 검사 도구와 간단한 도구에 모두 적용됩니다. 도구는 블록이 할당 된 시간에서 촬상 스택 트레이스와 함께 할당 된 각 힙 블록을 추적한다; 추가적으로 정수 태그는이 값은 블록이 할당 된 시간을 특징 논리 기간 /`세대 '추적 각 할당으로 유지된다. 사용자에 의해 요구 될 때이 정보의보고는 항상 프로세스 종료에서 생산되거나. 이 정보는 인스턴스와 메모리 누수의 원인을 찾는 데 도움이됩니다.
하지 초기화 힙 메모리 또는 해제 힙 메모리의 사용; 이 검사 도구와 간단한 도구에 모두 적용됩니다. 이 도구는 바이트 값 0xDD 바이트 값 0xEE에 모두 해제 된 메모리에 새로 할당 된 메모리를 설정; 이러한 값들의 사용은 일반적으로이 메모리 영역에 대한 포인터를 포함한다면, 충돌이 발생할 것이다 0xDDDDDDDD 값과 포인터 비 참조, 프로그래밍 에러를 이끈다.
힙 메모리 손상; 이 검사 도구와 간단한 도구에 모두 적용됩니다. 덮어 각 힙 블록의 메모리 접두사와 접미사를 배치하여 서명한다 메모리 도구를 확인; 접미사의 값이 다음 변경되면 힙 덮어 쓰기 / 감지 보험업.
이것은 단지 '' '검사 도구' ''에 적용; GLIBC의 문자열 조작 기능과 메모리 복사 / GLIBC의 이동 기능의 오용; 이 도구는 공통 표준 라이브러리 함수의 첫 번째 패스를 가져옵니다 그 확인 기능에 의해 손상을 스택, 그것은 함수가 기존 인수 힙 블록을 덮어 쓰지 않습니다 것을 확인한다; 또한 호출 스레드의 스택이 손상되지 않음을 확인한다.

이 릴리스의 새로운 기능입니다 :

지금 CFLAGS 환경 변수를 얻을 수 있도록
-ldl 옵션을 dbgmem 라이브러리를 구축
glibc는이 커널 버전에 결혼으로 공유 라이브러리는 지금, LIB / $로 (UNAME -r) 디렉토리에 배치됩니다.
일부 시스템 수정 편집 (구성 단계)
(-m - 스택 일부 세대 만 추적 생성) 스크립트를 실행하는 옵션을 추가

버전 1.9.1의 새로운 기능 :

이 스크립트를 업데이트 할, 지금은 필요한 기본 설정 검색을 시도; 여전히 지금 비록 Automake가해야 할 일하지 않는 방법
고정 GCC 2.9.6에 대한 C 모드에서 컴파일 오류; GCC는 여전히 C ++ 모드가 내장에 내부 오류로 충돌
추가 옵션 -g (malloc에​​의 페어링에 대한 검사를 활성화 / 새 / 새 [] 무료 / 삭제 / [] C ++에서 모드를 삭제)

1.7 버전의 새로운 기능 :

는 포크와 간부 호출을 따라 -f 옵션을 추가 (포크 / 간부처럼)
지금 보고서 파일의 헤더에있는 디버깅 프로세스의 명령 줄을 출력합니다.
맵 파일 이름은 이제 PID를 포함한다.
기본적으로 원시 보고서 파일을 삭제; 그들 중 너무 많은이있다;
sprintf와의 모든 사용은 현재 snprintf 변경

유사한 소프트웨어

dprintf
dprintf

20 Feb 15

UpStare
UpStare

20 Feb 15

GDB
GDB

16 Aug 18

MBW
MBW

18 Feb 15

코멘트 DBGMEM

댓글을 찾을 수 없습니다
코멘트를 추가
이미지를 켜십시오!