使用 ProbeVue 调试 C++ 应用程序
2010-05-04 00:00:00 来源:WEB开发网
清单 5. 访问参数的 Vue 脚本格式
##C++
#include "headerfile.h"
##Vue
struct space s1;
@@uftxlc++:PID:*:"space::spacefriend(space *, char *)":entry
{
String st[100];
printf("Probing spacefriend\n");
copy_userdata(__arg2, s1); # accessing argument space * here
printf("Argument s1.x = %d\n",s1.x);
copy_userdata(__arg3,st); # accessing argument char * here
printf(" Argument 2 of function spacefriend %s",st);
}
注意,在访问类成员函数的参数时,实际的参数编号从 2 而不是从 1 开始。在 ProbeVue 中,在访问类成员函数时,__arg1 引用 C++ 的 “this” 指针。因此,在清单 5 中 space * 参数是 __arg2,char * 是 __arg3。按照与 C 结构相同的方式对待 C++ 类,所以在 Vue 脚本中像访问其他结构那样访问它。
对于非类函数的参数,编号从 __arg1 开始。对于类成员函数,从 __arg2 开始。
头文件
要想访问函数的参数,需要向 ProbeVue 提供函数原型,让它知道参数的数据类型。可以在头文件中定义函数原型。本节解释如何编写头文件以及如何在 Vue 脚本中包含它。
编写头文件
正如前面提到的,头文件包含希望探查并访问其参数的函数的原型。在理想情况下,头文件应该包含所有类定义、成员函数和变量。因此,头文件应该包含函数的原型和一个虚拟的函数定义。还必须把函数名 main 改为其他独特的函数名。在 清单 8 中,main 已经改为 dummy。main 函数中的所有其他语句应该保持原状。可以使用以下 Vue 脚本语法包含头文件:
- ››使用脚本恢复WinXP系统的用户登录密码
- ››使用phpMyadmin创建数据库及独立数据库帐号
- ››使用Zend Framework框架中的Zend_Mail模块发送邮件...
- ››使用cout标准输出如何控制小数点后位数
- ››使用nofollow标签做SEO的技巧
- ››使用 WebSphere Message Broker 的 WebSphere Tra...
- ››使用SQL Server事件探查器做应用程序的性能分析
- ››使用SQL Server事件探查器分析死锁原因
- ››使用纯文本文件打造WCF服务
- ››使用 Dojo 开发定制 Business Space 小部件,第 4...
- ››使用 ADDRESS 与 INDIRECT函数查询信息
- ››使用 COLUMN函数编制单元信息
更多精彩
赞助商链接