aardio 文档

process.memoryMap:进程内存诊断与虚拟地址空间地图

用于排查 内存不足、连续大块分配失败、地址空间碎片、保留区过大和内存增长。不用临时编写 VirtualQuery 扫描代码。

只查询当前或指定 x86 进程的区域元信息,不读取目标内存内容,不触碰保护页,不分配、释放或修改目标内存。基础 process 不需要修改。

最短调用

import process.memoryMap;
var report,err = process.memoryMap.diagnose();
if(!report) return {error=err};
return report;

null / 省略目标参数只表示执行代码的当前进程,不是父进程或宿主。指定其他进程时传正整数 PID,或有效的 process 对象。

查看简短文本,并评估新预留 128 MiB 连续地址空间:

import process.memoryMap;
var mm = process.memoryMap;
var report,err = mm.diagnose(,{
    requestBytes = 128 * 1048576;
    top = 5;
    resolveNames = true;
    threadCount = true;
});
if(!report) return {error=err};
return {text=mm.format(report); complete=report.complete};

先看 complete,再看 findings、summary、request。 采集失败返回 null,err;扫描中途停止仍返回已采集的数据,但 complete=false。排行榜的 displayTruncated 只表示展示截断,不代表扫描不完整。

选哪个入口

任务 入口
AI 首次诊断、需要简短报告 diagnose(target, options)
保存地址布局、之后对比 snapshot(target, options)
离线分析已有快照 analyze(snapshot, options)
查看操作前后的变化 diff(before, after, options)
解释一个地址的页状态、保护、分配基址 query(target, address, options)
将已有结果显示成 CRLF 文本 format(result)

所有结果均为可 JSON 序列化的数据表,无须调用 close / free。库另开只查询/同步权限的句柄并自行关闭,不接管调用者的进程句柄。库不会提升权限;无权查询时直接返回错误。

能得到什么

三个必要限制

  1. MEM_COMMIT 区域字节数不是驻留 RAM;private.virtualBytes 包含仅保留空间。
  2. 带 PAGE_GUARD 的分配不一定是线程栈;增长也不是泄漏证明。
  3. 这是逐区域、非原子快照。默认不暂停进程,候选地址不能保证之后实际分配成功。

版本:0.1.0。首版仅实现 x86 目标;已在 Windows 11 x64 + 32 位 aardio 验证。64 位、ARM32、ARM64 目标明确拒绝,不会静默只扫描低 4 GiB。LAA 查询依赖 Native API,失败时拒绝猜测范围;详见兼容边界。

文档地图

Markdown 格式