2

给定 a double d,我可以打印它,

(lldb) expr d
(double) $2 = 3.05658e-08

有没有办法打印更多的d位数,例如

printf("%.15f", d) ?

有问题的 LLDB 版本是 LLDB-112.2,随 OS X 10.7.4 提供

编辑:使用

(lldb) expr (int) printf("%.15f", d)

导致进程被杀死,并带有

LLVM ERROR: Internal relocations not supported.

错误信息。

4

2 回答 2

1

lldb-112.2 在这一点上有点老了(我想大概有六七个月大了);根据 Xcode 4.5 lldb(lldb-167 左右)检查它,现在看起来它可以正常工作了。

0.000000030565830
Process 77907 stopped
* thread #1: tid = 0x1c03, 0x0000000100000f34 a.out`main + 52 at a.c:6, stop reason = breakpoint 1.1
    #0: 0x0000000100000f34 a.out`main + 52 at a.c:6
   3    {
   4      double d = .00000003056583;
   5      printf ("%.15f\n", d);
-> 6      return 5;
   7    }
(lldb) p d
(double) $0 = 3.05658e-08
(lldb) expr (int)printf("%.15f\n", d)
(int) $1 = 18
0.000000030565830
于 2012-09-29T05:15:44.737 回答
0

你有没有尝试过:

printf("%.15f", d)

?

于 2012-07-08T11:06:10.613 回答