在WinDbg中调试时如何查看类/结构对象成员的值
有时,当您调试应用程序时,会碰巧得到指向类的指针,该类只有几个成员变量,包括结构和其他类对象!如何看待内部类/结构变量成员的值??所以,这是提示。
下面是用于演示命令的代码。
- struct testStruct
- {
- int i;
- char ch;
- long l;
- char* str;
- };
- class myClass2
- {
- public:
- myClass2();
- ~myClass2();
- testStruct structObj;
- };
- myClass2::myClass2()
- {
- //Do Nothing..
- char *pStr = new char[];
- sprintf(pStr, "Test Message");
- structObj.i = ; structObj.l = ; structObj.ch = 'j'; structObj.str = pStr;
- }
- myClass2::~myClass2()
- {
- delete structObj.str;
- }
- int test2(myClass2* classObject)
- {
- return classObject->structObj.i;
- }
- void CWinDbgDlg::OnBnClickedButton2()
- {
- // TODO: Add your control notification handler code here
- myClass2 *ptr = new myClass2();
- int retVal = test2(ptr);
- }
所以,我们想做的是,当我们中断@test2函数时,我们想在WinDbg中看到该实例的structObj.str的值。
以下是需要在Windbg中完成的步骤。将进程附加到WinDbg,通过放置简单断点中断函数test2。点击kb命令找出test2函数的第一个参数(它是指向myClass2类对象的指针)。
函数test2的第一个参数是0x006ab520(请参阅上面调用堆栈第一行的第三列)。如您所知,如果您想查看类对象指针的成员变量,可以使用dt命令。
但是,我们的目标是找出structObj里面的东西!好吧,你可以用下面的命令来获取细节,
注意最后一个命令和之前一个命令的区别。我们在最后加上“structObj”。这就是我们如何在这个结构中找到成员的方法。任务完成了!
在WinDbg中调试时如何查看类/结构对象成员的值的更多相关文章
- java系列: 在eclipse中调试时,输入的jsp或者servlet页面的地址要区分大小写
比如在当前web工程中有一个jsp页面的名字是: Welcome.jsp 在eclipse中调试时,如果在浏览器中输入: http://localhost:8080/MavenWeb/welcome. ...
- IDEA中调试时F8,F7快捷键失效
idea中调试时F8,F7快捷键失效 原因:相关软件的快捷键占用了F8,F7,如我的有道词典占用F8了这个快捷键,导致idea调试时不能使用F8,改变有道词典的快捷键即可.
- 正确理解Widget::Widget(QWidget *parent) :QWidget(parent)这句话(初始化列表中无法直接初始化基类的数据成员,所以你需要在列表中指定基类的构造函数)
最近有点忙,先发一篇我公众号的文章,以下是原文. /********原文********/ 最近很多学习Qt的小伙伴在我的微信公众号私信我,该如何理解下面段代码的第二行QWidget(parent) ...
- 在 Visual Studio 中调试时映射调用堆栈上的方法
本文转自:https://msdn.microsoft.com/zh-cn/library/dn194476.aspx 1.创建代码图,以便在调试时对调用堆栈进行可视化跟踪. 你可以在图中进行标注以跟 ...
- 在IIS Express中调试时无法读取配置文件 错误
在IIS Express中调试代码时,如果出现"无法读取配置文件"的问题(如图),这种情况是IIS Express的"applicationhost.config&quo ...
- 在IIS Express中调试时无法读取配置文件
在IIS Express中调试代码时,如果出现“无法读取配置文件”的问题(如图),这种情况是IIS Express的“applicationhost.config”配置文件中的映射关系出了问题[ps: ...
- vs2010 开发过程中调试时 有错误不中断
出现这个的原因是调试的设置有问题,修改下设置就好了. 修改方法:点击上边工具栏中 调试--异常 出现以下页面,把引发那列复选框全部勾上,点击确定就好了.
- Objective-C Runtime 运行时之一:类与对象
Objective-C语言是一门动态语言,它将很多静态语言在编译和链接时期做的事放到了运行时来处理.这种动态语言的优势在于:我们写代码时更具灵活性,如我们可以把消息转发给我们想要的对象,或者随意交换一 ...
- Objective-C Runtime 运行时之一:类与对象(转载)
Objective-C语言是一门动态语言,它将很多静态语言在编译和链接时期做的事放到了运行时来处理.这种动态语言的优势在于:我们写代码时更具灵活性,如我们可以把消息转发给我们想要的对象,或者随意交换一 ...
随机推荐
- Excel数据都在一列,如何批量转置
Evernote Export Excel数据都在一列,如何批量转置 创建时间: 2019-10-21 星期一 13:41 作者: 苏苏 标签: excel, 转置 问题 Excel数据都 ...
- MySQL“慢SQL”定位
MySQL"慢SQL"定位 数据库调优我个人觉得必须要明白两件事 1.定位问题(你得知道问题出在哪里,要不然从哪里调优呢) 2.解决问题(这个没有基本的方法来处理,因为不同的问题处 ...
- RabbitMQ学习之RPC(6)
在第二个教程中,我们了解到如何在多个worker中使用Work Queues分发费时的任务. 但是,如果我们需要在远程运行一个函数并且等待结果该怎么办呢?这个时候,我们需要另外一个模式了.这种模式通常 ...
- 配置 Mac Chrome Inspect
安装libimobiledevice : Could not connect to lockdownd. Exiting. 报错解决 brew uninstall --ignore-depende ...
- python后端链接数据库-----MySQLdb
连接数据库之前请先确认好以下事宜: 1.已经建议好相应的数据库 2.在数据库中已经建立了相应的表 3.已经安装了MySQldb模块 示例: import MySQLdb # 打开数据库连接 db = ...
- angular创建一个独立弹窗服务
1.说明: 这个服务用于创建一个modal(弹窗),通常下,这个弹窗会插入到body的底部,并且拥有自己的作用域($scope),也可以和外界通讯. 2.逻辑: (1).创建模版 (2).拿到模版里要 ...
- uni-app悬浮框模板
1. uni-app悬浮框模板 1.1. 目标 模仿饿了吗app的悬浮框效果,即上移过程中,中间的某个组件框到顶部后不再上移,呈类似置顶的效果 1.2. 问题 中间遇到fixed固定组件导致flex失 ...
- js获取浏览器的缩放状态,浏览器右上角的百分比缩放后的状态
首先说明,这里所说的浏览器状态是指用户点击浏览器左上角的放大加号/减号所产生的页面整体变大变小的情况(快捷键:Ctrl+加号或 Ctrl+减号 或 Ctrl+滚轮上下) 实现代码如下: detectZ ...
- 内网漫游之SOCKS代理大结局
0×01 引言 在实际渗透过程中,我们成功入侵了目标服务器.接着我们想在本机上通过浏览器或者其他客户端软件访问目标机器内部网络中所开放的端口,比如内网的3389端口.内网网站8080端口等等.传统的方 ...
- tomcat启动Publishing failed with multiple errors
转自:https://blog.csdn.net/leisurelen/article/details/46940441 新安装一个tomcat插件.启动的时候就弹错误框.但tomcat还能使用. P ...