Как я могу показать двойные/плавающие значения, используя systemtap $$param$$ и $$return$$

Я использую 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

person William    schedule 13.05.2016    source источник


Ответы (1)