【发布时间】:2017-11-14 15:13:11
【问题描述】:
我正在开发 vxWorks 6.9 并尝试使用以下函数获取堆分配上的一些数字
void DebugGetMemUsage(PART_ID partId)
{
MEM_PART_STATS partStats;
char text[30] = {0};
if(memPartInfoGet(partId,&partStats) == OK)
{
sprintf(text,"%u %u %u %u %u %u"
,partStats.maxBlockSizeFree,
partStats.maxBytesAlloc,
partStats.numBlocksAlloc,
partStats.numBlocksFree,
partStats.numBytesAlloc,
partStats.numBytesFree);
Send_Debug(0,text);
}
else
{
Send_Debug(0,"memPartInfoGet Error");
}
}
这就是我的称呼
DebugGetMemUsage(memSysPartId);
每次我调用 DebugGetMemUsage 我都会收到
memPartInfoGet Error
我也试过了
int res = memInfoGet(&partStats);
sprintf(text,"memInfoGet result : %d",res);
DCI_Debug(0,text);
并在控制台上收到 -1 作为 memInfoGet 的返回值
知道我做错了什么吗?
谢谢
【问题讨论】:
-
我看到您使用 memInfoGet 的方式错误,没有指定池。附上我们的样本以供参考。
标签: vxworks