使用 ProbeVue 调试 C++ 应用程序
2010-05-04 00:00:00 来源:WEB开发网通过进一步调整清单 3 中的示例,可以查明调用每个函数的次数。
访问参数
除了支持设置探查以及查明调用哪些函数和调用次序之外,ProbeVue 还允许收集传递给函数的参数值。要想访问参数,需要指定函数的原型,让 ProbeVue 知道要获取的参数的数据类型。可以在头文件中编写原型。本节解释如何在 Vue 脚本中访问参数;下一节讨论 头文件。通过在 __arg 变量后面添加参数的位置(1、2、3 等)访问它们。现在,看看如何访问基本数据类型和派生数据类型的参数。
访问基本数据类型
访问基本数据类型相当容易,因为语法非常简单。访问它们的方法与访问其他 Vue 脚本变量差不多,只有一个小差异。可以按相似的方法访问其他基本数据类型。
C++ 函数定义
void func1(int a) // A non-class member function
清单 4. 访问参数的 Vue 脚本格式
##C++
#include "headerfile.h"
##Vue
@@uftxlc++:PID:*:"func1(int)":entry
{
printf("Probing function func1\n");
printf("Arguments=%d\n",__arg1); # Accessing argument of function func1
}
如果前面的函数是类成员函数,那么应该使用 __arg2 变量。
访问派生的数据类型
前面的示例包含一个类对象和字符串。要想访问派生的数据类型,应该使用 copy_userdata 函数,它把所需的数据从非 Vue 变量(也就是从参数指向的内存)复制到 Vue 脚本变量。不能直接使用 __arg2 或 __arg3 变量。
C++ 函数定义
void spacefriend(space *s,char *) // A class member function
更多精彩
赞助商链接