Error[8]: Undefined offset: 7, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

概述我有一个针对iOS SDK 6.1的通用iOS应用程序,编译器设置为Apple LLVM编译器4.2.当我在我的代码中放置一个断点并运行以下内容时,我得到了sin(int)的奇怪结果. 作为参考,sin(70)= 0.7739(70是弧度). (lldb) p (double)sin(70)(double) $0 = -0.912706376367676 // initial value(ll 我有一个针对iOS SDK 6.1的通用iOS应用程序,编译器设置为Apple LLVM编译器4.2.当我在我的代码中放置一个断点并运行以下内容时,我得到了sin(int)的奇怪结果.

作为参考,sin(70)= 0.7739(70是弧度).

(lldb) p (double)sin(70)(double) 
(lldb) expr (voID)NSLog(@"%f",(float)sin(70))0.000000 // new initial value(lldb) expr (voID)NSLog(@"%f",(float)sin(70.0))0.773891(lldb) expr (voID)NSLog(@"%f",(float)sin(70))0.000000 // does not return the prevIoUs sin(float) value(lldb) p (double)sin(70)(double) 
(lldb) p (float) sin(70)
= 1.48539705402154e-312 // sin(int) affected by sin(float) differently(lldb) p (double)sin(70.0)(double) = 0.773890681557889(lldb) expr (voID)NSLog(@"%f",(float)sin(70))0.000000 // not affected by sin(float)
= -0.912706376367676 // initial value(lldb) p (double)sin(1.0)(double) = 0.841470984807897 // reset the value sin(int) will return(lldb) p (double)sin(70)(double) = 0.841470984807905 // returned same as sin(1.0)(lldb) p (double)sin(70.0)(double) = 0.773890681557889 // reset the value sin(int) will return(lldb) p (double)sin(70)(double) = 0.773890681558519(lldb) p (double)sin((float)60)(double) = -0.304810621102217 // casting works the same as appending a ".0"(lldb) p (double)sin(70)(double) = -0.30481062110269(lldb) p (double)sin(1) (double) = -0.304810621102223 // every sin(int) behaves the same way

观察:

>调试会话中sin(int)的第一个值始终为-0.912706376367676.
> sin(int)将始终返回从上次执行的sin(float)返回的相同值.
>如果我用p或expr(例如expr(double)sin(70))替换p,我会得到完全相同的结果.

为什么调试器的行为如此?

这是否意味着我每次调用函数时都应该输入每个参数?

NSLog的一些更有趣的行为:

(lldb) p (double) sin(70.0)
解决方法 你正走进C中默认参数促销的奇妙世界.记住,lldb不知道sin()的参数类型或返回类型是什么.正确的原型是双重罪(双重).当你写作

settings set target.expr-prefix ~/lldb/prefix.h

这有两个问题.首先,您提供了一个整数参数,C默认促销规则将把它作为int传递,这是一个4字节的值,在所讨论的体系结构上.除了8字节之外,double是完全不同的编码.所以罪恶得到垃圾输入.其次,sin()在这些体系结构上返回一个双字节或8字节值,但是你告诉lldb要抓取它的4个字节并做一些有意义的事情.如果你调用了p(float)sin((double)70)(所以只有返回类型不正确)lldb会打印一个无意义的值,如9.40965e 21而不是0.773891.

你写的时候

extern "C" {int strcmp (const char *,const char *);voID printf (const char *,...);double sin(double);}

你解决了这些错误.浮点类型的默认C提升是将其作为double传递.如果你正在调用sinf(),那么你会遇到问题,因为函数只需要浮点数.

如果你想为lldb提供sin()的正确原型并且不担心这些问题,那么很容易.将其添加到〜/ .lldbinit文件中,

(lldb) p sin(70)(double) [+++] = 0.773890681557889

(我有一个〜/ lldb目录,我存储有用的python文件和类似的东西)和〜/ lldb / prefix.h将读取

[+++]

(你可以看到我在我的前缀文件中也有strcmp()和printf()的原型,所以我不需要转换它们.)你不想在这里放太多东西 – 这个文件是前置的您在lldb中评估的每个表达式,如果将所有原型放在/usr/include中,它将减慢表达式评估速度.

将该原型添加到我的target.expr-prefix设置:

[+++] 总结

以上是内存溢出为你收集整理的在Xcode调试器(lldb)中断了Sin(int)全部内容,希望文章能够帮你解决在Xcode调试器(lldb)中断了Sin(int)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

)
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 166, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
Error[8]: Undefined offset: 8, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

概述我有一个针对iOS SDK 6.1的通用iOS应用程序,编译器设置为Apple LLVM编译器4.2.当我在我的代码中放置一个断点并运行以下内容时,我得到了sin(int)的奇怪结果. 作为参考,sin(70)= 0.7739(70是弧度). (lldb) p (double)sin(70)(double) $0 = -0.912706376367676 // initial value(ll 我有一个针对iOS SDK 6.1的通用iOS应用程序,编译器设置为Apple LLVM编译器4.2.当我在我的代码中放置一个断点并运行以下内容时,我得到了sin(int)的奇怪结果.

作为参考,sin(70)= 0.7739(70是弧度).

(lldb) p (double)sin(70)(double) 
(lldb) expr (voID)NSLog(@"%f",(float)sin(70))0.000000 // new initial value(lldb) expr (voID)NSLog(@"%f",(float)sin(70.0))0.773891(lldb) expr (voID)NSLog(@"%f",(float)sin(70))0.000000 // does not return the prevIoUs sin(float) value(lldb) p (double)sin(70)(double) 
(lldb) p (float) sin(70)
= 1.48539705402154e-312 // sin(int) affected by sin(float) differently(lldb) p (double)sin(70.0)(double) = 0.773890681557889(lldb) expr (voID)NSLog(@"%f",(float)sin(70))0.000000 // not affected by sin(float)
= -0.912706376367676 // initial value(lldb) p (double)sin(1.0)(double) = 0.841470984807897 // reset the value sin(int) will return(lldb) p (double)sin(70)(double) = 0.841470984807905 // returned same as sin(1.0)(lldb) p (double)sin(70.0)(double) = 0.773890681557889 // reset the value sin(int) will return(lldb) p (double)sin(70)(double) = 0.773890681558519(lldb) p (double)sin((float)60)(double) = -0.304810621102217 // casting works the same as appending a ".0"(lldb) p (double)sin(70)(double) = -0.30481062110269(lldb) p (double)sin(1) (double) = -0.304810621102223 // every sin(int) behaves the same way

观察:

>调试会话中sin(int)的第一个值始终为-0.912706376367676.
> sin(int)将始终返回从上次执行的sin(float)返回的相同值.
>如果我用p或expr(例如expr(double)sin(70))替换p,我会得到完全相同的结果.

为什么调试器的行为如此?

这是否意味着我每次调用函数时都应该输入每个参数?

NSLog的一些更有趣的行为:

(lldb) p (double) sin(70.0)
解决方法 你正走进C中默认参数促销的奇妙世界.记住,lldb不知道sin()的参数类型或返回类型是什么.正确的原型是双重罪(双重).当你写作

settings set target.expr-prefix ~/lldb/prefix.h

这有两个问题.首先,您提供了一个整数参数,C默认促销规则将把它作为int传递,这是一个4字节的值,在所讨论的体系结构上.除了8字节之外,double是完全不同的编码.所以罪恶得到垃圾输入.其次,sin()在这些体系结构上返回一个双字节或8字节值,但是你告诉lldb要抓取它的4个字节并做一些有意义的事情.如果你调用了p(float)sin((double)70)(所以只有返回类型不正确)lldb会打印一个无意义的值,如9.40965e 21而不是0.773891.

你写的时候

extern "C" {int strcmp (const char *,const char *);voID printf (const char *,...);double sin(double);}

你解决了这些错误.浮点类型的默认C提升是将其作为double传递.如果你正在调用sinf(),那么你会遇到问题,因为函数只需要浮点数.

如果你想为lldb提供sin()的正确原型并且不担心这些问题,那么很容易.将其添加到〜/ .lldbinit文件中,

(lldb) p sin(70)(double)  = 0.773890681557889

(我有一个〜/ lldb目录,我存储有用的python文件和类似的东西)和〜/ lldb / prefix.h将读取

[+++]

(你可以看到我在我的前缀文件中也有strcmp()和printf()的原型,所以我不需要转换它们.)你不想在这里放太多东西 – 这个文件是前置的您在lldb中评估的每个表达式,如果将所有原型放在/usr/include中,它将减慢表达式评估速度.

将该原型添加到我的target.expr-prefix设置:

[+++] 总结

以上是内存溢出为你收集整理的在Xcode调试器(lldb)中断了Sin(int)全部内容,希望文章能够帮你解决在Xcode调试器(lldb)中断了Sin(int)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

)
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 166, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
Error[8]: Undefined offset: 9, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

概述我有一个针对iOS SDK 6.1的通用iOS应用程序,编译器设置为Apple LLVM编译器4.2.当我在我的代码中放置一个断点并运行以下内容时,我得到了sin(int)的奇怪结果. 作为参考,sin(70)= 0.7739(70是弧度). (lldb) p (double)sin(70)(double) $0 = -0.912706376367676 // initial value(ll 我有一个针对iOS SDK 6.1的通用iOS应用程序,编译器设置为Apple LLVM编译器4.2.当我在我的代码中放置一个断点并运行以下内容时,我得到了sin(int)的奇怪结果.

作为参考,sin(70)= 0.7739(70是弧度).

(lldb) p (double)sin(70)(double) 
(lldb) expr (voID)NSLog(@"%f",(float)sin(70))0.000000 // new initial value(lldb) expr (voID)NSLog(@"%f",(float)sin(70.0))0.773891(lldb) expr (voID)NSLog(@"%f",(float)sin(70))0.000000 // does not return the prevIoUs sin(float) value(lldb) p (double)sin(70)(double) 
(lldb) p (float) sin(70)
= 1.48539705402154e-312 // sin(int) affected by sin(float) differently(lldb) p (double)sin(70.0)(double) = 0.773890681557889(lldb) expr (voID)NSLog(@"%f",(float)sin(70))0.000000 // not affected by sin(float)
= -0.912706376367676 // initial value(lldb) p (double)sin(1.0)(double) = 0.841470984807897 // reset the value sin(int) will return(lldb) p (double)sin(70)(double) = 0.841470984807905 // returned same as sin(1.0)(lldb) p (double)sin(70.0)(double) = 0.773890681557889 // reset the value sin(int) will return(lldb) p (double)sin(70)(double) = 0.773890681558519(lldb) p (double)sin((float)60)(double) = -0.304810621102217 // casting works the same as appending a ".0"(lldb) p (double)sin(70)(double) = -0.30481062110269(lldb) p (double)sin(1) (double) = -0.304810621102223 // every sin(int) behaves the same way

观察:

>调试会话中sin(int)的第一个值始终为-0.912706376367676.
> sin(int)将始终返回从上次执行的sin(float)返回的相同值.
>如果我用p或expr(例如expr(double)sin(70))替换p,我会得到完全相同的结果.

为什么调试器的行为如此?

这是否意味着我每次调用函数时都应该输入每个参数?

NSLog的一些更有趣的行为:

(lldb) p (double) sin(70.0)
解决方法 你正走进C中默认参数促销的奇妙世界.记住,lldb不知道sin()的参数类型或返回类型是什么.正确的原型是双重罪(双重).当你写作

settings set target.expr-prefix ~/lldb/prefix.h

这有两个问题.首先,您提供了一个整数参数,C默认促销规则将把它作为int传递,这是一个4字节的值,在所讨论的体系结构上.除了8字节之外,double是完全不同的编码.所以罪恶得到垃圾输入.其次,sin()在这些体系结构上返回一个双字节或8字节值,但是你告诉lldb要抓取它的4个字节并做一些有意义的事情.如果你调用了p(float)sin((double)70)(所以只有返回类型不正确)lldb会打印一个无意义的值,如9.40965e 21而不是0.773891.

你写的时候

extern "C" {int strcmp (const char *,const char *);voID printf (const char *,...);double sin(double);}

你解决了这些错误.浮点类型的默认C提升是将其作为double传递.如果你正在调用sinf(),那么你会遇到问题,因为函数只需要浮点数.

如果你想为lldb提供sin()的正确原型并且不担心这些问题,那么很容易.将其添加到〜/ .lldbinit文件中,

(lldb) p sin(70)(double)  = 0.773890681557889

(我有一个〜/ lldb目录,我存储有用的python文件和类似的东西)和〜/ lldb / prefix.h将读取

(你可以看到我在我的前缀文件中也有strcmp()和printf()的原型,所以我不需要转换它们.)你不想在这里放太多东西 – 这个文件是前置的您在lldb中评估的每个表达式,如果将所有原型放在/usr/include中,它将减慢表达式评估速度.

将该原型添加到我的target.expr-prefix设置:

[+++] 总结

以上是内存溢出为你收集整理的在Xcode调试器(lldb)中断了Sin(int)全部内容,希望文章能够帮你解决在Xcode调试器(lldb)中断了Sin(int)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

)
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 166, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
在Xcode调试器(lldb)中断了Sin(int)_app_内存溢出

在Xcode调试器(lldb)中断了Sin(int)

在Xcode调试器(lldb)中断了Sin(int),第1张

概述我有一个针对iOS SDK 6.1的通用iOS应用程序,编译器设置为Apple LLVM编译器4.2.当我在我的代码中放置一个断点并运行以下内容时,我得到了sin(int)的奇怪结果. 作为参考,sin(70)= 0.7739(70是弧度). (lldb) p (double)sin(70)(double) $0 = -0.912706376367676 // initial value(ll 我有一个针对iOS SDK 6.1的通用iOS应用程序,编译器设置为Apple LLVM编译器4.2.当我在我的代码中放置一个断点并运行以下内容时,我得到了sin(int)的奇怪结果.

作为参考,sin(70)= 0.7739(70是弧度).

(lldb) p (double)sin(70)(double) 
(lldb) expr (voID)NSLog(@"%f",(float)sin(70))0.000000 // new initial value(lldb) expr (voID)NSLog(@"%f",(float)sin(70.0))0.773891(lldb) expr (voID)NSLog(@"%f",(float)sin(70))0.000000 // does not return the prevIoUs sin(float) value(lldb) p (double)sin(70)(double) 
(lldb) p (float) sin(70)
= 1.48539705402154e-312 // sin(int) affected by sin(float) differently(lldb) p (double)sin(70.0)(double) = 0.773890681557889(lldb) expr (voID)NSLog(@"%f",(float)sin(70))0.000000 // not affected by sin(float)
= -0.912706376367676 // initial value(lldb) p (double)sin(1.0)(double) = 0.841470984807897 // reset the value sin(int) will return(lldb) p (double)sin(70)(double) = 0.841470984807905 // returned same as sin(1.0)(lldb) p (double)sin(70.0)(double) = 0.773890681557889 // reset the value sin(int) will return(lldb) p (double)sin(70)(double) = 0.773890681558519(lldb) p (double)sin((float)60)(double) = -0.304810621102217 // casting works the same as appending a ".0"(lldb) p (double)sin(70)(double) = -0.30481062110269(lldb) p (double)sin(1) (double) = -0.304810621102223 // every sin(int) behaves the same way

观察:

>调试会话中sin(int)的第一个值始终为-0.912706376367676.
> sin(int)将始终返回从上次执行的sin(float)返回的相同值.
>如果我用p或expr(例如expr(double)sin(70))替换p,我会得到完全相同的结果.

为什么调试器的行为如此?

这是否意味着我每次调用函数时都应该输入每个参数?

NSLog的一些更有趣的行为:

(lldb) p (double) sin(70.0)
解决方法 你正走进C中默认参数促销的奇妙世界.记住,lldb不知道sin()的参数类型或返回类型是什么.正确的原型是双重罪(双重).当你写作

settings set target.expr-prefix ~/lldb/prefix.h

这有两个问题.首先,您提供了一个整数参数,C默认促销规则将把它作为int传递,这是一个4字节的值,在所讨论的体系结构上.除了8字节之外,double是完全不同的编码.所以罪恶得到垃圾输入.其次,sin()在这些体系结构上返回一个双字节或8字节值,但是你告诉lldb要抓取它的4个字节并做一些有意义的事情.如果你调用了p(float)sin((double)70)(所以只有返回类型不正确)lldb会打印一个无意义的值,如9.40965e 21而不是0.773891.

你写的时候

extern "C" {int strcmp (const char *,const char *);voID printf (const char *,...);double sin(double);}

你解决了这些错误.浮点类型的默认C提升是将其作为double传递.如果你正在调用sinf(),那么你会遇到问题,因为函数只需要浮点数.

如果你想为lldb提供sin()的正确原型并且不担心这些问题,那么很容易.将其添加到〜/ .lldbinit文件中,

(lldb) p sin(70)(double)  = 0.773890681557889

(我有一个〜/ lldb目录,我存储有用的python文件和类似的东西)和〜/ lldb / prefix.h将读取

(你可以看到我在我的前缀文件中也有strcmp()和printf()的原型,所以我不需要转换它们.)你不想在这里放太多东西 – 这个文件是前置的您在lldb中评估的每个表达式,如果将所有原型放在/usr/include中,它将减慢表达式评估速度.

将该原型添加到我的target.expr-prefix设置:

总结

以上是内存溢出为你收集整理的在Xcode调试器(lldb)中断了Sin(int)全部内容,希望文章能够帮你解决在Xcode调试器(lldb)中断了Sin(int)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1011182.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存