Я использую systemtap для получения callgraph с параметрами и возвращаемыми значениями, но переменные 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