Doug Lea의 malloc.c (Linux x86_64)에서 해킹을하고 있는데 가장 낮은 할당 주소와 할당 된 최상위 주소의 주소를 찾아야합니다. 청크 - 다른 말로하면 할당 된 메모리의 범위 - 물론 mspace의 malloc_state 부기 구조체는 제외됩니다. 이 주소를 어떻게 얻을 수 있습니까? 전체 힙의 범위는 찾지 않고 할당 된 부분의 범위 만 찾고 있습니다. 할당 된 부분에는 일반적으로 가장 낮은 할당 된 덩어리와 가장 높은 할당 된 덩어리 사이에 할당되지 않은 "구멍"이 포함됩니다. 나는 malloc_state 구조체의 least_addr과 top 필드를 사용했다. 이 올바른지? 고맙습니다!malloc.c를 사용하는 힙 할당 메모리 범위
1
A
답변
1
내가 이해하는 것으로부터, 이것은 효과가있다. Malloc은이 값을 사용하여 메모리를 할당 할 수있는 위치를 정의합니다.
다음은 malloc 구현입니다. 귀하의 질문에 대한 답변을 얻을 수 있습니다.
+0
감사! 나는 이미 Doug Lea의 malloc.c를 가지고있다. 이것은 링크가 간다. 왜 least_addr이 mspace 자체의 주소보다 _lower_ 값을 갖는지 생각해보십시오. malloc_state 구조체가 mspace의 첫 번째 sizeof (struct malloc_state) 바이트를 차지할 것으로 예상 했으므로 least_addr이 바로 뒤에 오게 될 것이지만 내 테스트는 mspace의 포인터 주소보다 더 작은 least_addr 값을 보여줍니다. –
관련 문제
- 1. 메모리 할당/std :: string 생성자의 힙 손상
- 2. C에서의 메모리 할당
- 3. 빠른 메모리 할당/범위 질문 예를 들어
- 4. malloc() 및 힙 메모리
- 5. 자바 힙 할당
- 6. 큰 정렬을 사용하는 Win32 메모리 할당
- 7. 임베디드 시스템에서 힙 할당 객체의 메모리 분석을 수행하는 방법은 무엇입니까?
- 8. Android 전체 앱 메모리 가져 오기 (힙 + 외부 할당)
- 9. Java 요청되지 않은 메모리 할당
- 10. 메모리 할당
- 11. 메모리 할당
- 12. 메모리 할당
- 13. 메모리 할당 - 프로세스 트리의 공통 메모리
- 14. 개인 힙 또는 메모리 자체 관리
- 15. 힙 조각화 및 창 메모리 관리자
- 16. 읽기 전용 메모리 및 힙 메모리
- 17. C++ : 메모리 할당 자
- 18. 동적 GPU의 메모리 할당
- 19. Android 위젯의 메모리 할당
- 20. 아이폰 애플리케이션 메모리 할당
- 21. 메모리 할당 및 해제
- 22. 메모리 누출의 C/메모리 할당 ++
- 23. 솔라리스/리눅스에서 할당 된 메모리 해제하기
- 24. 힙 할당 객체의 데이터 멤버가 힙 또는 스택에 할당됩니까?
- 25. iPhone 메모리 할당 문제
- 26. 바람둥이 최대 자바 힙 메모리
- 27. Openssl에 대한 힙 메모리 사용량
- 28. MySQL 힙/메모리 기반 테이블
- 29. 힙 외의 안드로이드 메모리 관리
- 30. 어셈블리 메모리 할당
mmap을 통해 할당 된 지역을 어떻게합니까? – user611775
필자는 초기화 할 때 많은 메모리를 mmap-ing하고 나서 malloc을 호출 할 때마다 Doug Lea의 create_mspace_with_base와 mspace_track_large_chunks를 사용한 다음 mspace_malloc을 사용하기 때문에 걱정하지 않습니다. –