Advanced Debugging
About AdvDbg Consult Train Services Products Tools Community Contact  
欢迎光临 高端调试 登录 | 注册 | FAQ
 
  ACPI调试
Linux内核调试
Windows内核调试
 
  调试战役
调试原理
新工具观察
 
  Linux
Windows Vista
Windows
 
  Linux驱动
WDF
WDM
 
  PCI Express
PCI/PCI-X
USB
无线通信协议
 
  64位CPU
ARM
IA-32
  CPU Info Center
 
  ACPI标准
系统认证
Desktop
服务器
 
  Embedded Linux
嵌入式开发工具
VxWorks
WinCE
嵌入式Windows
 
  格蠹调试套件(GDK)
  格蠹学院
  小朱书店
  老雷的微博
  《软件调试》
  《格蠹汇编》
  《软件调试(第二版)》
沪ICP备11027180号-1

C/C++本地代码调试

帖子发起人: chena_cpp   发起时间: 2015-10-29 12:44 下午   回复: 0

Print Search
帖子排序:    
   2015-10-29, 12:44 下午
chena_cpp 离线,最后访问时间: 2012/12/21 8:18:23 chena_cpp

发帖数前100位
注册: 2012-12-21
发 贴: 11
windows底层的内存分配函数一共有几种?
Reply Quote
我知道的就HeapAlloc,GlobalAlloc,LocalAlloc,VirtualAlloc,VirtualAllocEx。
前面3个分配的都是属于堆的。

我现在在调试一个内存异常的程序,具体表现是使用某个特定版本的gpu驱动导致内存多了800M,换一个驱动内存正常了。
我想看看这800M内存到底哪里分配的。

我用NtQueryVirtualMemory遍历之后发现这800M不属于Heap,是private data(vmmap的分法),我看文档说这部分应该是
直接用VirtualAlloc或者VirtualAllocEx分配的,但是我hook了这两个函数,发现不是,没有这么多内存通过这两个函数分配。

多出来的这800M内存的地址我看了,从10020000-84840000都有,都是几M-十几M的,我程序是64位的。
怎么样才能知道这800M内存到底哪里分配的?

谢谢。


IP 地址: 已记录   报告
高端调试 » 软件调试 » C/C++本地代码调试 » windows底层的内存分配函数一共有几种?

 
Legal Notice Privacy Statement Corporate Governance Corporate Governance
(C)2004-2020 ADVDBG.ORG All Rights Reserved.