使用 ProbeVue 调试 C++ 应用程序
2010-05-04 00:00:00 来源:WEB开发网Vue 脚本语法
探查 C++ 函数
使用以下命令探查 C++ 函数:
带参数的非类函数
@@uftxlc++:PID:*:"Func(arg1_type, arg2_type,..,argN_type)":entry
不带参数的非类函数
@@uftxlc++:PID:*:"Func":entry
带参数的类函数
@@uftxlc++:PID:*:"Class::Func(arg1_type, arg2_type,..,argN_type)":entry
不带参数的类函数
@@uftxlc++:PID:*:"Class::Func":entry
使用模板返回类型或参数类型的函数
@@uftxlc++:PID:*:"Class::Func<type1,..,typeN>(arg1_type,..,argN_type)":entry
模板函数总是用完全参数化的类型指定的。尖括号为由 “T” 参数类型表示的泛型指定具体类型。
探查 C++ 库例程
可以使用 @@uft(而不是 @@uftxlc++)探查 C++ 库例程。下面说明具体做法。
替代 @@uftxlc++ 的语法
一种替代 @@uftxlc++ 的语法是 @@uft。如果可执行文件是未精简的,就可以使用这种语法。按以下方式使用它:
对未精简的可执行文件运行 dump -tv 获取其中的函数,运行 dump -Tv 获取库例程。
查看 CPP 部分,选择您感兴趣的函数。清单 1 给出一个示例。
清单 1. 获取函数
-----------------------------------------------------------------
Case 1 : C++ executable functions
-----------------------------------------------------------------
# dump -tv ./a.out
[Index] m Value Scn Aux Sclass Type Name
[110] m 0x0000008f debug 3 FILE C++:COM .file
[113] a0 IBM XL C/C++ Enterprise Edition for AIX
[149] m 0x10000660 .text 1 weak .hello__1AFv
Note : You can probe functions which have
4th field "Scn" = ".text"
and
6th field "Sclass"="extern" Or "unamex" Or "weak"
-----------------------------------------------------------------
Case 2 : C++ library functions
-----------------------------------------------------------------
# dump -Tv ./a.out
./a.out:
***Loader Section***
***Loader Symbol Table Information***
[Index] Value Scn IMEX Sclass Type IMPid Name
[2] 0x00000000 undef IMP DS EXTref libc.a(shr.o) atexit
Note : You can probe functions which have
4th field "IMEX" = "IMP"
and
5th field "Sclass" = "DS"
更多精彩
赞助商链接