Ich benutze Systemtap, um einen Callgraph mit Parametern und Rückgabewerte zu erhalten, aber float und Doppelvariablen werden angezeigt als? verkohlen. Gibt es eine Möglichkeit, den richtigen Wert zu zeigen?
Mein systemtap Skript ist dies:
#! /usr/bin/env stap
probe $1.call { trace(1, $$parms$$) }
probe $1.return { trace(-1, $$return$$) }
Und ein einfacher C-Programm-Code zu testen:
double test(int a, char b, double c, float e){
return c;
}
int main(void){
test(1,'1',1.0,1.0f);
return 0;
}
Die Ausgabe des Skripts über den Code ausgeführt wird (die c und e-Werte beachten, und die Testrückgabe):
test a=1 b='1' c=? e=?
test return=?
main
main return=0