creator调试时怎么查看完整堆栈信息

creator调试时怎么查看完整堆栈信息,第1张

在 Qt Creator 中,你可以使用调试器前端界面逐行单步或逐过程调试程序,设置断点 ,检查堆栈中的内容,查看局部或全局变量的值等等,这些和我们常见的调试器提供的功能并无二致。而上述的原生信息,Qt Creator 会以清晰、简明的方式展现给程序员,这将使得原 本令人生畏的调试工作变得简单而有趣。

除了像堆栈查看器、局部变量和观察器、寄存器查看器等这些主流 IDE 都会提供的功能 外,Qt Creator 还提供了许多的功能以帮助开发者提高效率。由于调试器前端对 Qt 的内部 机制了如指掌,所以当程序出现问题时,它能够明晰描述症状。

若程序中对堆栈设置如下:

A此堆栈段的段名为STACK

B此堆栈段共120个单元

C此堆栈段第一个变量的名称为size

D堆栈设置好后,堆栈指针SP指向栈底

正确答案:C

首先取得要查看的进程的ID;代码如下

DWORD YourProcessID;

//获得某一时刻系统的进程、堆(heap)、模块(module)或线程的快照信息

HANDLE Snapshot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);

PROCESSENTRY32 processListStr;

processListStrdwSize=sizeof(PROCESSENTRY32);

BOOL return_value;

return_value=Process32First(Snapshot,&processListStr);

//获得系统进程链表中第一个进程的信息

int i=0;//item index

while(return_value){

//判断进程名称是否和你要查找的进程名称相同

if(processListStrszExeFile == "yourWillWatchProcessName"){

//将进程ID存放起来

YourProcessID = processListStrth32ProcessID;

break;

}

//获得系统进程链表中下一个进程的信息

return_value=Process32Next(Snapshot,&processListStr);

}

获得进程的ID以后

在通过下面的这个函数来获取进程中的内存数据

BOOL WINAPI Toolhelp32ReadProcessMemory(

DWORD th32ProcessID, //进程ID

LPCVOID lpBaseAddress, //进程基地址

LPVOID lpBuffer, //缓冲区

SIZE_T cbRead, //Number of bytes to read from the specified process

SIZE_T lpNumberOfBytesRead // Number of bytes copied to the specified buffer If this parameter is NULL, it is ignored

);

上面这个函数的用法就看看MSDN吧!

以上就是关于creator调试时怎么查看完整堆栈信息全部的内容,包括:creator调试时怎么查看完整堆栈信息、若程序中对堆栈设置如下:、如何查看某个进程堆,栈中的数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9530360.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存