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 변경

유사한 소프트웨어

Kodos
Kodos

3 Jun 15

dprintf
dprintf

20 Feb 15

Fenris
Fenris

3 Jun 15

ngrep
ngrep

2 Jun 15

코멘트 DBGMEM

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