我正在使用 systemtap 来获取带有参数和返回值的调用图,但是 float 和 double 变量显示为?字符。有没有办法显示正确的值?
我的 systemtap 脚本是这样的:
#! /usr/bin/env stap
probe $1.call { trace(1, $$parms$$) }
probe $1.return { trace(-1, $$return$$) }
以及一个简单的 C 程序代码进行测试:
double test(int a, char b, double c, float e){
return c;
}
int main(void){
test(1,'1',1.0,1.0f);
return 0;
}
运行上述代码的脚本的输出(注意 c 和 e 值,以及测试返回):
test a=1 b='1' c=? e=?
test return=?
main
main return=0