WEB开发网
开发学院操作系统Linux/Unix 使用 ProbeVue 调试 C++ 应用程序 阅读

使用 ProbeVue 调试 C++ 应用程序

 2010-05-04 00:00:00 来源:WEB开发网   
核心提示: 通过进一步调整清单 3 中的示例,可以查明调用每个函数的次数,使用 ProbeVue 调试 C++ 应用程序(5), 访问参数除了支持设置探查以及查明调用哪些函数和调用次序之外,ProbeVue 还允许收集传递给函数的参数值,应该使用 copy_userdata 函数,它把所需的数据从非 Vue

通过进一步调整清单 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 

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:使用 ProbeVue 调试

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接