首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >断点条件错误

断点条件错误
EN

Stack Overflow用户
提问于 2013-06-19 21:28:46
回答 2查看 3.4K关注 0票数 7

我已经用条件设置了一个断点...

代码语言:javascript
复制
[event.name isEqualToString:@"Some Name"]

这可以很好地工作。

但是,当我尝试使用条件添加另一个断点时...

代码语言:javascript
复制
[part.name isEqualToString:@"Some Value With A Pound Sign £"]

我得到了错误...

代码语言:javascript
复制
Internal error [IRForTarget]: An Objective-C constant string's string initializer is not an array
Stopped due to an error evaluating condition of breakpoint

我是不是需要躲开收容所之类的标志?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-22 15:02:38

表达式解析器和包含非ASCII码字符的NSString文字存在错误。

代码语言:javascript
复制
(lldb) po @"u"
$9 = 0x00007fff7debe5e0 u
(lldb) po @"ü"
Internal error [IRForTarget]: An Objective-C constant string's string initializer is not an array
error: warning: expression result unused
error: The expression could not be prepared to run in the target

已经有一个关于这个问题的错误报告提交给http://bugreport.apple.com/

正确处理非ASCII C字符串文字,因此可以解决此问题,例如

代码语言:javascript
复制
(lldb) po [NSString stringWithUTF8String:"ü"]
$11 = 0x000000010010b040 ü
票数 11
EN

Stack Overflow用户

发布于 2013-06-19 22:07:54

我不知道为什么断点仍然有如此有限的编译器支持,但不管怎样,为了解决你的问题,你调用的每个方法的返回类型应该是这样的:

代码语言:javascript
复制
(BOOL)[(NSString *)[part name] isEqualToString:@"some string"]

这样,如果字符串不包含‘’t‘符号或任何其他非ASCII字符,您的代码应该会暂停。由于LLDB编译器似乎存在非ASCII字符的问题,您可能希望首先使用该编码转换字符串。同时,如果可能,我正在寻找一种避免这种情况的方法,…

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17192505

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档