Existe-t-il un moyen de step
dans les fonctions standard comme printf() ou atof(), puis exécutez finish
pour revenir au programme principal pour obtenir la valeur de retour?LLDB "étape dans" et "terminer" pour obtenir la valeur de retour des fonctions standard
Avec GDB je peux le faire comme ceci:
(gdb) step
14 float di = atof(argv[1]);
(gdb) step
atof (nptr=0x7fffffffe0c6 "5.8") at atof.c:27
27 atof.c: No such file or directory.
(gdb) finish
Run till exit from #0 atof (nptr=0x7fffffffe0c6 "5.8") at
atof.c:27
0x00005555555547d1 in main (argc=2, argv=0x7fffffffdd18) at
circumf.c:14
14 float di = atof(argv[1]);
Value returned is $1 = 5.7999999999999998
Mais quand j'essayer avec LLDB il pas « sur » toutes les fonctions standard. Il fonctionne avec les fonctions du programme, celles que je peux utiliser, mais pas avec les fonctions standard. Je suppose que c'est une fonctionnalité, mais y a-t-il un moyen de contourner le problème? J'utilise également step
avec LLDB.
Existe-t-il un autre moyen d'obtenir la valeur de retour à partir de fonctions standard à l'intérieur de LLDB?
Merci, j'ai essayé GDB et LLDB sur la même machine, puis j'ai eu un comportement cohérent. Je sais que je n'ai eu un comportement différent entre LLDB et GDB que sur des machines différentes. Donc, vous avez raison, la différence était probablement le manque d'informations de débogage sur la machine sur laquelle j'ai couru LLDB. – jackbenny