【问题标题】:Floating point formatting in LLDB (debugging C++)LLDB 中的浮点格式(调试 C++)
【发布时间】:2012-07-08 11:03:42
【问题描述】:

给定一个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.

错误信息。

【问题讨论】:

    标签: lldb


    【解决方案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
    

    【讨论】:

      【解决方案2】:

      你试过了吗:

      printf("%.15f", d)
      

      ?

      【讨论】:

      • 我假设你的意思是expr (int) printf("%.15f", d)。在这种情况下,它会使用 LLVM ERROR: Internal relocations not supported. 消息杀死整个 LLDB 进程。有人看到它可以在另一个版本的 LLDB 上工作吗?
      猜你喜欢
      • 1970-01-01
      • 2014-12-10
      • 2015-12-20
      • 1970-01-01
      • 2019-07-11
      • 1970-01-01
      • 2012-03-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多