2013-12-10 37 views
0

使用lldb调试器时,是否可以从math.h调用函数?lldb中的math.h函数不起作用

我试图调试一些与数学有关iOS的代码,并正在逐渐从Xcode5调试程序不正确的结果:

(lldb) p (double)pow(2., 2.) 
(double) $0 = NaN 

Another post提到,调试器不知道pow函数的原型,所以我也试图铸造功能为正确的类型,但它仍然没有奏效:

(lldb) p ((double(*)(double, double))pow)(2., 2.) 
(double) $0 = NaN 

但是它的工作从我的运行目标C代码调用时:

NSLog(@"Power is %f", pow(2., 2.)); 

2013-12-10 14:41:25.651 Foo[27481:70b] Power is 4.000000 
+0

这是绝对有可能。例如try(lldb)p(double)sin(70.0) ...这是有效的,但由于某种原因,我无法让pow工作... – Eric

+0

Ye'sin'也适用于我,但并非所有其他数学函数。我特别感兴趣的是在我的调试中使用'log'函数,但它不工作:'(lldb)p(double)log(1.)'outputs'(double)$ 0 = NaN'。 – tboyce12

回答

2

当你看到这个时,你使用了什么版本的Xcode?你在Xcode 5.0中看到这个吗?我使用的东西一点点更新,它看起来很好的armv7s设备调试iOS应用:

(lldb) p (double)pow(2.0,2.0) 
(double) $0 = 4 
(lldb) p (double)log(1.0) 
(double) $1 = 0 
(lldb) 
+0

我目前位于XCode版本5.0.2(5A3005)。当我发布这个问题时,我记不清我准确的版本。 在我的设备上进行调试的确有窍门,但它在模拟器中仍然不适用于我。我可能没有真正尝试过它在设备上,所以感谢这个提示! – tboyce12

+0

有趣的是,当我今晚回到家时,我会在模拟器上试试。 –