¿Cómo se muestra un valor de coma flotante, con decimales, en LLDB?

En gdb, puedo usar el comando de impresión para mostrar una variable de punto flotante o doble, y obtengo un valor con varios lugares decimales. El comando equivalente en LLDB, expr, parece redondear/truncar el valor y solo mostrar la parte del número entero. La documentación de la cadena de formato para LLDB es más que un poco obtusa. ¿Cómo visualizo una variable local de punto flotante de doble precisión o precisión simple, incluida la parte decimal?

si foo = 3.1415926, entonces

expr foo

pantallas

fo = 3

No muy útil.

preguntado el 12 de junio de 12 a las 22:06

1 Respuestas

Puede hacer esto con el comando expr. Es engorroso, pero funciona:

(lldb) expr (int) printf("%f \n",foo)
3.14159
(lldb)

Respondido el 25 de junio de 12 a las 13:06

Gracias. Eso lo resuelve. ¿Por qué no lo hace "expr foo"? La expresión gdb "p foo" me da el decimal, pero "expr foo" no. Parece que el formato de visualización predeterminado para una expresión de coma flotante debería mostrar el valor de coma flotante. Además, ¿conoce alguna forma de cambiar el formato de visualización de una expresión LLDB, sin tener que recurrir a invocar printf? ¿Algo como "expr %f foo"? - duncan c

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.