iPhone开发:Xcode调试器不会在断点处停止

20
我在OS X 10.5.5上使用Xcode 3.1.2。我的iPhone项目可以成功编译,但是调试器无法命中任何断点。我尝试了网上找到的所有标准修复方法:
  1. 在Xcode首选项中关闭'Load Symbols Lazily'
  2. 我的活动配置是Debug
  3. 构建设置中优化级别为0
  4. 已经清除了所有目标并重新构建
  5. 使用“Build and Debug”(而不是“Build and Run”)
我以为可能无意中调整了项目设置。所以我创建了一个新项目,但那个项目也有同样的问题。
我希望我只是忽略了一些简单的东西。我的调试器在几天前还能工作,但突然就停止了。

更新:

事情变得越来越奇怪。以下是对回答的一些答案
  1. 我无法在任何地方找到“GCC 4.0 - Code Generation”选项。我已经在Target和Executable Info页面上寻找了很长时间。我唯一看到的选项是选择编译器版本,并选择了GCC 4.0,但那是一个只有一行且没有其他选项的部分。
  2. 关于放置断点的位置:目前我的唯一断点位于main()中,但它没有被命中
  3. 我使用Run -> Debug (/% Y)命令启动调试器。仍然没有运气

更新2:

  1. 在目标设置中将Base SDK更改为Sim 2.2.1。将Active SDK更改为Sim 2.2.1。
  2. 现在我可以看到GCC 4.0 Code Generation选项-调试符号已经被选中
  3. 仍然无法命中断点
这是Console日志(在main.m的第一行设置了断点):
[Session started at 2009-03-06 21:29:19 -0600.]
Loading program into debugger…
GNU gdb 6.3.50-20050815 (Apple version gdb-962) (Sat Jul 26 08:14:40 UTC 2008)
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-apple-darwin".warning: Unable to read symbols for "/System/Library/Frameworks/UIKit.framework/UIKit" (file not found).
warning: Unable to read symbols from "UIKit" (not yet mapped into memory).
warning: Unable to read symbols for "/System/Library/Frameworks/CoreGraphics.framework/CoreGraphics" (file not found).
warning: Unable to read symbols from "CoreGraphics" (not yet mapped into memory).
Program loaded.
sharedlibrary apply-load-rules all
Attaching to program: `/private/var/root/Library/Application Support/iPhone Simulator/User/Applications/753D12B3-777C-473B-B098-3E0AF6282545/TestApp.app/TestApp', process 577.
Re-enabling shared library breakpoint 1

以下是gdb日志:

t=0.000852 Tepoch=1236463545.631514
<- (gdb) 
-> 135-gdb-version
#  PBXGDB_MIGDBVersionCommand t=4.308986 Tepoch=1236463549.939648
-> 136-gdb-set auto-raise-load-levels 1
#  PBXGDB_MISetAutoRaiseSymbols t=4.309420 Tepoch=1236463549.940082
-> 139-gdb-set env __CF_USER_TEXT_ENCODING 0x0:0:0
#  PBXGDB_MISetEnvCommand t=4.309702 Tepoch=1236463549.940364
-> 140-gdb-set env USERBREAK 1
#  PBXGDB_MISetEnvCommand t=4.309935 Tepoch=1236463549.940598
-> 141-gdb-set env DYLD_FRAMEWORK_PATH /Projects/TestApp/build/Debug-iphonesimulator
#  PBXGDB_MISetEnvCommand t=4.310175 Tepoch=1236463549.940837
-> 142-gdb-set env Apple_PubSub_Socket_Render /tmp/launch-GqkpX5/Render
#  PBXGDB_MISetEnvCommand t=4.310568 Tepoch=1236463549.941231
-> 143-gdb-set env SECURITYSESSIONID 715cd0
#  PBXGDB_MISetEnvCommand t=4.310803 Tepoch=1236463549.941465
-> 144-gdb-set env DYLD_LIBRARY_PATH /Projects/TestApp/build/Debug-iphonesimulator
#  PBXGDB_MISetEnvCommand t=4.311040 Tepoch=1236463549.941702
-> 145-gdb-set env SSH_AUTH_SOCK /tmp/launch-hRgLzb/Listeners
#  PBXGDB_MISetEnvCommand t=4.311299 Tepoch=1236463549.941961
-> 146-gdb-set env HOME /var/root
#  PBXGDB_MISetEnvCommand t=4.311587 Tepoch=1236463549.942250
-> 147-gdb-set env SHELL /bin/sh
#  PBXGDB_MISetEnvCommand t=4.311818 Tepoch=1236463549.942480
-> 148-gdb-set env DYLD_NO_FIX_PREBINDING YES
#  PBXGDB_MISetEnvCommand t=4.312048 Tepoch=1236463549.942710
-> 149-gdb-set env COMMAND_MODE unix2003
#  PBXGDB_MISetEnvCommand t=4.312281 Tepoch=1236463549.942943
-> 150-gdb-set env DYLD_NEW_LOCAL_SHARED_REGIONS YES
#  PBXGDB_MISetEnvCommand t=4.312546 Tepoch=1236463549.943209
-> 151-gdb-set env SSH_ASKPASS /Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/Xcode SSHPassKey
#  PBXGDB_MISetEnvCommand t=4.312780 Tepoch=1236463549.943443
-> 152-gdb-set env PATH /Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin
#  PBXGDB_MISetEnvCommand t=4.313612 Tepoch=1236463549.944275
-> 153-gdb-set env DISPLAY /tmp/launch-yrv3vV/:0
#  PBXGDB_MISetEnvCommand t=4.313849 Tepoch=1236463549.944512
-> 154-gdb-set env USER root
#  PBXGDB_MISetEnvCommand t=4.314141 Tepoch=1236463549.944803
-> 155-gdb-set env NSUnbufferedIO YES
#  PBXGDB_MISetEnvCommand t=4.314377 Tepoch=1236463549.945039
#  Enqueue seq in Command Q: <PBXGDB_SetupSharedLibrarySequence: 0x9049db0> t=4.314625 Tepoch=1236463549.945288
#  Executing Sequence: <PBXGDB_SetupSharedLibrarySequence: 0x9049db0> t=4.314718 Tepoch=1236463549.945380
-> 157-gdb-set inferior-auto-start-cfm off
#  PBXGDB_MISetLoadCFMInfoCommand t=4.314895 Tepoch=1236463549.945557
-> 156-gdb-set sharedLibrary load-rules dyld ".*Foundation.*" all dyld ".*libobjc.*" all dyld ".*libauto.*" all dyld ".*/usr/lib/dyld.*" all dyld ".*CFDataFormatters.*" all dyld ".*PBGDBIntrospectionSupport.*" all dyld ".*AppKit.*" all dyld ".*libSystem.*" all dyld ".*CarbonDataFormatters.*" all dyld ".*CoreFoundation.*" extern dyld "/System/Library/Frameworks\\\\|/System/Library/PrivateFrameworks\\\\|/usr/lib" extern dyld ".*" extern exec ".*" extern 
#  PBXGDB_MISetSharedLibraryLoadSymbolsCommand t=4.315975 Tepoch=1236463549.946637
-> 137-file-exec-and-symbols "/private/var/root/Library/Application Support/iPhone Simulator/User/Applications/09734C45-F595-4CB9-8707-744E92D66245/TestApp.app/TestApp"
#  PBXGDB_MILoadExecutableCommand t=4.320612 Tepoch=1236463549.951275
#  Enqueue seq in Command Q: <PBXGDB_FixAndContinueIsSupportedSequence: 0x9bdc260> t=4.321476 Tepoch=1236463549.952138
#  Enqueue seq in Command Q: <PBXGDB_NewBreakpointSequence: 0xa516f90> t=4.321941 Tepoch=1236463549.952603
#  Enqueue seq in Command Q: <PBXGDB_AttachControlSequence: 0xa4fceb0> t=4.322157 Tepoch=1236463549.952820
<- ~"GNU gdb 6.3.50-20050815 (Apple version gdb-962) (Sat Jul 26 08:14:40 UTC 2008)\n"
<- ~"Copyright 2004 Free Software Foundation, Inc.\n"
<- ~"GDB is free software, covered by the GNU General Public License, and you are\nwelcome to change it and/or distribute copies of it under certain conditions.\nType \"show copying\" to see the conditions.\nThere is absolutely no warranty for GDB.  Type \"show warranty\" for details.\n"
<- ~"This GDB was configured as \"i386-apple-darwin\"."
<- 135^done,version="6.3.50-20050815 (Apple version gdb-962)",rc_version="962",target="i386-apple-darwin",build-date="Sat Jul 26 08:14:40 UTC 2008",time={wallclock="0.03311",user="0.00081",system="0.00014",start="1236463549.989179",end="1236463550.022291"}
#  processing result t=4.392345 Tepoch=1236463550.023007
<- (gdb) 
<- 136^done,time={wallclock="0.00005",user="0.00005",system="0.00001",start="1236463550.024272",end="1236463550.024325"}
#  processing result t=4.394163 Tepoch=1236463550.024826
<- (gdb) 
<- 139^done,time={wallclock="0.00007",user="0.00005",system="0.00002",start="1236463550.025511",end="1236463550.025581"}
#  processing result t=4.395347 Tepoch=1236463550.026010
<- (gdb) 
<- 140^done,time={wallclock="0.00003",user="0.00003",system="0.00001",start="1236463550.026564",end="1236463550.026597"}
#  processing result t=4.396328 Tepoch=1236463550.026991
<- (gdb) 
<- 141^done,time={wallclock="0.00003",user="0.00003",system="0.00001",start="1236463550.027857",end="1236463550.027890"}
#  processing result t=4.397653 Tepoch=1236463550.028315
<- (gdb) 
<- 142^done,time={wallclock="0.00003",user="0.00003",system="0.00001",start="1236463550.029080",end="1236463550.029113"}
#  processing result t=4.398865 Tepoch=1236463550.029528
<- (gdb) 
<- 143^done,time={wallclock="0.00003",user="0.00003",system="0.00001",start="1236463550.030126",end="1236463550.030159"}
#  processing result t=4.399923 Tepoch=1236463550.030585
<- (gdb) 
<- 144^done,time={wallclock="0.00003",user="0.00003",system="0.00001",start="1236463550.031449",end="1236463550.031482"}
#  processing result t=4.401855 Tepoch=1236463550.032518
<- (gdb) 
<- 145^done,time={wallclock="0.00003",user="0.00003",system="0.00001",start="1236463550.033257",end="1236463550.033291"}
#  processing result t=4.403022 Tepoch=1236463550.033685
<- (gdb) 
<- 146^done,time={wallclock="0.00006",user="0.00003",system="0.00002",start="1236463550.034226",end="1236463550.034287"}
#  processing result t=4.404018 Tepoch=1236463550.034680
<- (gdb) 
<- 147^done,time={wallclock="0.00003",user="0.00003",system="0.00001",start="1236463550.035215",end="1236463550.035247"}
#  processing result t=4.405007 Tepoch=1236463550.035670
<- (gdb) 
<- 148^done,time={wallclock="0.00003",user="0.00003",system="0.00001",start="1236463550.036306",end="1236463550.036340"}
#  processing result t=4.406068 Tepoch=1236463550.036731
<- (gdb) 
<- 149^done,time={wallclock="0.00003",user="0.00003",system="0.00001",start="1236463550.037344",end="1236463550.037377"}
#  processing result t=4.407107 Tepoch=1236463550.037770
<- (gdb) 
<- 150^done,time={wallclock="0.00003",user="0.00003",system="0.00001",start="1236463550.038448",end="1236463550.038483"}
#  processing result t=4.408214 Tepoch=1236463550.038876
<- (gdb) 
<- 151^done,time={wallclock="0.00003",user="0.00003",system="0.00001",start="1236463550.040541",end="1236463550.040576"}
#  processing result t=4.410438 Tepoch=1236463550.041101
<- (gdb) 
<- 152^done,time={wallclock="0.00003",user="0.00003",system="0.00001",start="1236463550.041901",end="1236463550.041933"}
#  processing result t=4.411665 Tepoch=1236463550.042327
<- (gdb) 
<- 153^done,time={wallclock="0.00003",user="0.00003",system="0.00001",start="1236463550.042984",end="1236463550.043016"}
#  processing result t=4.412784 Tepoch=1236463550.043446
<- (gdb) 
<- 154^done,time={wallclock="0.00003",user="0.00002",system="0.00001",start="1236463550.043956",end="1236463550.043988"}
#  processing result t=4.413717 Tepoch=1236463550.044379
<- (gdb) 
<- 155^done,time={wallclock="0.00003",user="0.00003",system="0.00001",start="1236463550.044974",end="1236463550.045007"}
#  processing result t=4.414737 Tepoch=1236463550.045400
<- (gdb) 
<- 157^done,time={wallclock="0.00003",user="0.00003",system="0.00001",start="1236463550.046108",end="1236463550.046141"}
#  processing result t=4.415931 Tepoch=1236463550.046594
<- (gdb) 
<- 156^done,time={wallclock="0.00005",user="0.00005",system="0.00001",start="1236463550.050271",end="1236463550.050324"}
#  processing result t=4.420235 Tepoch=1236463550.050897
-> 158sharedlibrary apply-load-rules all
#  PBXGDB_MISharedLibraryApplyLoadRulesCommand t=4.420386 Tepoch=1236463550.051049
<- (gdb) 
<- &"warning: Unable to read symbols for \"/System/Library/Frameworks/UIKit.framework/UIKit\" (file not found).\n"
<- &"warning: Unable to read symbols from \"UIKit\" (not yet mapped into memory).\n"
<- &"warning: Unable to read symbols for \"/System/Library/Frameworks/CoreGraphics.framework/CoreGraphics\" (file not found).\n"
<- &"warning: Unable to read symbols from \"CoreGraphics\" (not yet mapped into memory).\n"
<- 137^done,time={wallclock="0.34917",user="0.17115",system="0.11409",start="1236463550.052577",end="1236463550.401747"}
#  processing result t=4.771918 Tepoch=1236463550.402580
<- (gdb) 
<- &"sharedlibrary apply-load-rules all\n"
<- 158^done
#  processing result t=4.820019 Tepoch=1236463550.450681
#  didFinish Sequence: <PBXGDB_SetupSharedLibrarySequence: 0x9049db0> t=4.820135 Tepoch=1236463550.450797
#  Executing Sequence: <PBXGDB_FixAndContinueIsSupportedSequence: 0x9bdc260> t=4.820259 Tepoch=1236463550.450921
-> 159-mi-verify-command file-fix-file-is-grooved
#  PBXGDB_MIVerifyCommandCommand t=4.820398 Tepoch=1236463550.451060
<- (gdb) 
<- 159^done,name="file-fix-file-is-grooved",defined="true",implemented="true",time={wallclock="0.00011",user="0.00007",system="0.00001",start="1236463550.451848",end="1236463550.451955"}
#  processing result t=4.821746 Tepoch=1236463550.452409
-> 160-file-fix-file-is-grooved
#  PBXGDB_MIFixAndContinueSupportedCommand t=4.821894 Tepoch=1236463550.452556
<- (gdb) 
<- 160^done,supported="1",details="Yes grooved!",time={wallclock="0.00006",user="0.00005",system="0.00002",start="1236463550.453356",end="1236463550.453417"}
#  processing result t=4.823203 Tepoch=1236463550.453865
#  didFinish Sequence: <PBXGDB_FixAndContinueIsSupportedSequence: 0x9bdc260> t=4.823344 Tepoch=1236463550.454006
#  Executing Sequence: <PBXGDB_NewBreakpointSequence: 0xa516f90> t=4.823433 Tepoch=1236463550.454095
#  Passed verification of state before break create command t=4.823569 Tepoch=1236463550.454231
-> 161-break-insert -l -1 -f  -s "TestApp" "\"main.m:13\""
#  PBXGDB_MICreateFileBreakpointCommand t=4.823679 Tepoch=1236463550.454342
<- (gdb) 
<- =shlib-state-modified,shlib-info=[num="1",name="TestApp",kind="-",dyld-addr="-",reason="exec",requested-state="Y",state="Y",path="/private/var/root/Library/Application Support/iPhone Simulator/User/Applications/09734C45-F595-4CB9-8707-744E92D66245/TestApp.app/TestApp",description="/private/var/root/Library/Application Support/iPhone Simulator/User/Applications/09734C45-F595-4CB9-8707-744E92D66245/TestApp.app/TestApp",loaded_addr="",slide="0x0",prefix="",dsym-objpath="/Projects/TestApp/build/Debug-iphonesimulator/TestApp.app.dSYM/Contents/Resources/DWARF/TestApp"]
<- 161^done,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x000028cf",func="main",file="/Projects/TestApp/main.m",line="13",shlib="/private/var/root/Library/Application Support/iPhone Simulator/User/Applications/09734C45-F595-4CB9-8707-744E92D66245/TestApp.app/TestApp",times="0"},time={wallclock="0.15835",user="0.00321",system="0.00184",start="1236463550.455187",end="1236463550.613542"}
#  processing result t=4.996437 Tepoch=1236463550.627100
#  didFinish Sequence: <PBXGDB_NewBreakpointSequence: 0xa516f90> t=4.996599 Tepoch=1236463550.627262
#  Executing Sequence: <PBXGDB_AttachControlSequence: 0xa4fceb0> t=4.996690 Tepoch=1236463550.627352
-> 162-mi-verify-command target-attach
#  PBXGDB_MIVerifyCommandCommand t=4.996824 Tepoch=1236463550.627486
<- (gdb) 
<- 162^done,name="target-attach",defined="true",implemented="true",time={wallclock="0.00007",user="0.00006",system="0.00001",start="1236463550.627975",end="1236463550.628046"}
#  processing result t=4.998137 Tepoch=1236463550.628799
-> 163-target-attach 288
#  PBXGDB_MIAttachCommand t=4.998293 Tepoch=1236463550.628955
<- (gdb) 
<- ~"Attaching to program: `/private/var/root/Library/Application Support/iPhone Simulator/User/Applications/09734C45-F595-4CB9-8707-744E92D66245/TestApp.app/TestApp', process 288.\n"
<- ~"Re-enabling shared library breakpoint 1\n"
<- =shlibs-updated
<- 163^done,thread-id="1",time={wallclock="0.00362",user="0.00151",system="0.00203",start="1236463550.629436",end="1236463550.633055"}
#  processing result t=5.010455 Tepoch=1236463550.641117
#  Enqueue seq in Command Q: <PBXGDB_ThreadListSequence: 0xa4e0520> t=5.011284 Tepoch=1236463550.641946
-> 164-exec-continue
#  PBXGDB_MIContinueExecutableCommand t=5.011420 Tepoch=1236463550.642082
<- (gdb) 
<- 164^running
#  processing result t=5.070065 Tepoch=1236463550.700727
#  didFinish Sequence: <PBXGDB_AttachControlSequence: 0xa4fceb0> t=5.071843 Tepoch=1236463550.702505
<- (gdb) 

我认为你可能会遇到设备部分的问题,调试客户端在上面...但是在模拟器上?不行。 - epatel
你有另一台Mac可以尝试运行你的项目吗?这可能会告诉你是Xcode/SDK还是你的应用程序的问题。至于这个问题,你能调试Mac应用程序吗?尝试创建一个空的Cocoa项目并进行调试。 - Becca Royal-Gordon
当您运行/调试时,是否在Xcode窗口的左下角看到文本“GDB:Running…”? - epatel
是的。它显示 GDB: Running... 但没有触发断点。 - Mike Marshall
+1 这种情况经常发生在我身上! - Michael Pryor
显示剩余3条评论
19个回答

16
我无法在任何地方找到“GCC 4.0-代码生成”选项。我已经在Target和Executable Info页面中仔细查找了,唯一的选择是选择编译器版本,并选择了GCC 4.0,但那只是一个单行节,没有其他选项。
这是Xcode在3.1.1和3.1.2版本中的一个bug,如果Active SDK与目标的Base SDK不同步。将Target的Base SDK设置为模拟器,确保你的Active SDK是模拟器,然后再尝试一次。
如果你真的想解决这个问题,你需要发布更多关于你的项目的信息:构建设置的截图或者调试控制台里的文本。
更新: 还请注意在Xcode > Preferences > Debugging: alt text http://idisk.mac.com/cdespinosa/Public/GDB%20Log.png 勾选该框,输入合理的路径,尝试你的调试场景,然后在http://bugreporter.apple.com上报告bug,并附上日志和你的场景描述,或者向xcode-users@lists.apple.com请求帮助。GDB日志包含有关调试器如何与你的应用程序交互的所有信息。

这是我听到最有希望的事情。今晚我将仔细检查目标 SDK 的设置,然后在此回复(希望到时候我可以将其标记为已解决)。 - Mike Marshall
我打算投票支持你,以抵消有人给我的回答点赞的事实。虽然我认为我的回答可能会普遍有用,但问题提问者明确表示情况并非如此,而我也不想得到半个我不应得的赏金。 - Benjamin Autin
编辑原帖。如果我从苹果邮件列表中收到任何反馈,我会再次发布。 - Mike Marshall

3
在Xcode的偏好设置中进入调试部分,关闭“懒加载符号”选项。
几个月前我第一次遇到这个问题时,这个方法对我有用。

也帮我解决了问题。谢谢! - Martin Winter

1
另一个简单的建议:
断点是浅蓝色还是深蓝色?

Xcode允许您停用断点,并且这些断点用浅蓝色箭头表示(就像它被消暗了一样)。


很酷,这只是最近困扰我的一件事情。 - Benjamin Autin

1

只有当您将Active SDK设置为Device - iPhone OS 2.x时,GCC 4.0 - Code Generation部分才会显示出来。真是匪夷所思。当Active SDK是模拟器时,它们就消失了。

您应该将Active SDK更改为Device,更改设置,然后再更改回Simulator。在Device下进行的设置也适用于Simulator。这也适用于例如设置预处理的-DDEBUG标志。

(更新:我只说对了一半。请参见Chris Espinosa的已接受答案,关于此SDK错误。不是当Active SDK设置为“Device”时,GCC 4.0部分会显示出来,而是您的Base SDK和Active SDK必须匹配才能访问这些设置)。


今晚我会尝试基础/活动SDK的更改,并在此回帖中发布结果。 - Mike Marshall

1
这有点像“它是否插好了”的答案,但是有时候问题就在这里:断点是否启用?有时候当我调试时,我会忘记点击调试工具栏中启用和禁用断点的按钮。

0

我也遇到了同样的问题。目前我还没有找到真正的解决方案,但是我发现,在我的情况下,这取决于设备。错误只会在我的iPod Touch 4G上发生。当我切换到我的iPhone 3G时,一切都正常工作,断点也能正常使用。

我不知道这是否与问题有任何关联,但可能是由于安装了iOS 5 beta 2而导致iPod4出现问题。通常当我在iOS 5中遇到问题时,重新启动设备就可以解决。然而…重新启动iPod4并没有帮助到我...

解决方案:

这个问题困扰了我几个星期,但最终我为我的情况找到了解决方案:

  1. 确保您Mac上的SDK与您的设备上的iOS版本相同(或更新)。
  2. 在连接USB和运行Xcode时重启设备。

0

尝试通过按下Command-Option-Y来运行项目(这会强制Xcode使用调试器启动程序)。

Xcode菜单栏上的按钮可能有些误导性。如果按钮上写着“Run”,它并不会在调试器中运行程序。如果它说“Go”,它会以最后一次构建的方式运行程序(即发布或调试)。Command-Option-Y会在调试器中特别启动程序。

此外,请确保启用了断点。您可以右键单击它们进行检查。还有,在调试器窗口中,工具栏上应该有一个激活或停用断点的选项。请确保它们已被激活。


我已经多次清理和重建,并尝试使用Command-Option-Y启动,但没有成功。 - Mike Marshall

0
在您的构建设置列表中,您没有涵盖最关键的一项: alt text http://idisk.mac.com/cdespinosa/Public/Generate%20Debug%20Symbols.png 确保在调试配置中选中“生成调试符号”,并确保在构建和调试时处于活动状态。
尝试另外两件事:
1)取消勾选“修复并继续”。您详细的gdb日志表明可能已经开启。确认此设置时,请确保查看的是目标设置而不是项目设置。
2)尝试不要以root身份运行。不清楚为什么需要这样做。Xcode以root身份运行可能会与模拟器产生交互;坦白地说,我们很少使用这种配置,所以我不知道。
日志显示一切都很正常。您有一个已构建的二进制文件,在模拟器中启动;它是正确的架构和格式良好的;您有调试符号;您有断点,并且断点已设置。我们相信您的话(因为我们看不到您的源代码),断点实际上是在执行的代码行上设置的。

这是哪个信息页面?我不记得在可执行文件或目标设置中看到过这个,但我会再看一遍。 - Mike Marshall
啊,无法在目标或可执行设置中找到此设置。 - Mike Marshall

0
这可能是一个非常明显的答案,但可能有效。你试过在main()之外的代码中添加断点吗?比如在App Delegate的applicationDidFinishLaunching方法中?我知道应该先经过main,但由于main中的代码通常不会被修改成iPhone应用程序,所以可能有些不稳定。不管怎样,值得一试。
另外,要找到GCC 4.0 - Code Generation选项,点击三角形展开Targets组,然后点击你的应用程序名称下面的目标。点击Xcode窗口顶部的Info按钮,你将获得应用程序的设置。进入Build选项卡,确保Show:下拉菜单设置为All Settings。如果从那里向下滚动,它应该是你可以编辑的列表之一(在Versioning之后,GCC 4.0 - Language之前)。

是的,我已经尝试在AppDelegate的启动代码中正确设置了。问题在于,应用程序按照我的预期运行,因此我知道所有代码都被执行了。只是它没有触发断点。cdespinosa的答案看起来很有希望。今晚会回复结果。 - Mike Marshall

0
当程序正在运行时,您可以在控制台窗口中执行CTRL-C操作(光标在此处时)。如果您打断了程序,请键入info br以获取活动断点列表。问题是,它们是否与您设置的相同?

(gdb) info br 编号 类型 状态 启用 地址 描述 1 断点 保留 y 0x000028cf 在 /Projects/TestApp/main.m 的 main 函数的第13行 --- 它没有停在这个断点。这是 main() 函数中的第一行。 - Mike Marshall

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接