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

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/601265/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-09 02:59:04  来源:igfitidea点击:

iPhone Dev: Xcode debugger does not stop on breakpoints

iphonexcodecocoa-touchdebuggingxcode3.1

提问by Mike Marshall

I've got Xcode 3.1.2 on OS X 10.5.5. I have an iPhone project that builds fine but the debugger will not hit any of the breakpoints I set. I've tried all the standard fixes that I find on the net:

我在 OS X 10.5.5 上有 Xcode 3.1.2。我有一个构建良好的 iPhone 项目,但调试器不会遇到我设置的任何断点。我已经尝试了我在网上找到的所有标准修复程序:

  1. I've turned off 'Load Symbols Lazily' in Xcode preferences
  2. My active config is Debug
  3. Optimization level is 0 in build settings
  4. I've cleaned all targets and rebuilt
  5. I use Build and Debug (as opposed to Build and Run)
  1. 我在 Xcode 首选项中关闭了“Load Symbols Lazily”
  2. 我的活动配置是调试
  3. 构建设置中的优化级别为 0
  4. 我已经清理了所有目标并重建了
  5. 我使用构建和调试(而不是构建和运行)

I thought I might have inadvertently tweaked settings on my project. So I created a new project and that one has the same problem.

我想我可能无意中调整了我的项目的设置。所以我创建了一个新项目,那个项目也有同样的问题。

I'm hoping that I am missing something easy here. My debugger was working just a few days back but all of a sudden it has stopped.

我希望我在这里遗漏了一些简单的东西。我的调试器几天前还在工作,但突然间它停止了。



UPDATE:

更新:

Things are just getting stranger. Here are some answers to the responses

事情变得越来越陌生。以下是一些回复的答案

  1. I cannot find 'GCC 4.0 - Code Generation' options anywhere. I've looked hi and low in both Target and Executable Info pages. The only option I see is to select the compiler version, and GCC 4.0 is selected, but that is a one-line section with no additional options.
  2. About where to put breakpoints: My only breakpoint for now is in main(), and it is not being hit
  3. I am starting the debugger with the Run -> Debug (/% Y) command. Still no luck
  1. 我在任何地方都找不到“GCC 4.0 - 代码生成”选项。我在 Target 和 Executable Info 页面中都显得喜忧参半。我看到的唯一选项是选择编译器版本,并选择了 GCC 4.0,但这是一个没有其他选项的单行部分。
  2. 关于在哪里放置断点:我现在唯一的断点是在 main() 中,并且没有被击中
  3. 我正在使用 Run -> Debug (/% Y) 命令启动调试器。仍然没有运气


UPDATE 2:

更新 2:

  1. Changed Base SDK in target settings to Sim 2.2.1. Changed Active SDK to Sim 2.2.1.
  2. Now I can see GCC 4.0 Code Generation options - Debug Symbols are checked
  3. Still does not hit breakpoints
  1. 将目标设置中的 Base SDK 更改为 Sim 2.2.1。将 Active SDK 更改为 Sim 2.2.1。
  2. 现在我可以看到 GCC 4.0 代码生成选项 - 调试符号被选中
  3. 仍然没有命中断点

here is the Console log (breakpoint set at first line of main.m):

这是控制台日志(断点设置在 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

Also is here the gdb log:

也是这里的 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) 

采纳答案by cdespinosa

I cannot find 'GCC 4.0 - Code Generation' options anywhere. I've looked hi and low in both Target and Executable Info pages. The only option I see is to select the compiler version, and GCC 4.0 is selected, but that is a one-line section with no additional options.

我在任何地方都找不到“GCC 4.0 - 代码生成”选项。我在 Target 和 Executable Info 页面中都显得喜忧参半。我看到的唯一选项是选择编译器版本,并选择了 GCC 4.0,但这是一个没有其他选项的单行部分。

That's an Xcode bug in 3.1.1 and 3.1.2 if the Active SDK is out of synch with the target's Base SDK. Set the Target's Base SDK to Simulator, make sure your Active SDK is Simulator, and try again.

如果 Active SDK 与目标的 Base SDK 不同步,则这是 3.1.1 和 3.1.2 中的 Xcode 错误。将 Target 的 Base SDK 设置为 Simulator,确保您的 Active SDK 是 Simulator,然后重试。

If you really want this answered, you're going to have to post more information about your project: a screen shot of the Build Settings, or text from the Debugger Console.

如果你真的想要这个答案,你将不得不发布关于你的项目的更多信息:构建设置的屏幕截图,或来自调试器控制台的文本。

UPDATED: Also note in Xcode > Preferences > Debugging: alt text http://idisk.mac.com/cdespinosa/Public/GDB%20Log.png

更新:还要注意 Xcode > Preferences > Debugging: alt text http://idisk.mac.com/cdespinosa/Public/GDB%20Log.png

Check the box, enter a reasonable path into the path field, try your debug scenario, then file a bug at http://bugreporter.apple.comwith the log attached and a description of your scenario, or ask the good people over at [email protected]. The gdb log contains all the information about how the debugger is interacting with your application.

选中该框,在路径字段中输入一个合理的路径,尝试您的调试方案,然后在http://bugreporter.apple.com上提交错误并附上日志和您的方案的描述,或者在[email protected]。gdb 日志包含有关调试器如何与应用程序交互的所有信息。

回答by oldbeamer

In the Xcode preferences go into the debugging section and turn off 'Load symbols lazily'.

在 Xcode 首选项中,进入调试部分并关闭“延迟加载符号”。

That fixed it for me a few months ago when I first run into this problem.

几个月前当我第一次遇到这个问题时,它为我解决了这个问题。

回答by Kevin Conner

This is sort of a "is it plugged in" answer, but hey, sometimes that is the problem: Are breakpoints enabled? Sometimes when I debug, I forget to click the button in the debugging toolbar that enables and disables breakpoints.

这是一种“是否已插入”的答案,但是,嘿,有时这就是问题所在:是否启用了断点?有时在调试时,我忘记单击调试工具栏中启用和禁用断点的按钮。

回答by Benjamin Autin

Another simple suggestion:
Are the breakpoints light blue are dark blue?

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

Xcode allows you to deactivate breakpoints and these are indicated with a light blue arrow (like it has been dimmed).

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

回答by Ryan McCuaig

The GCC 4.0 - Code Generationsection only shows up when you set the Active SDK to Device - iPhone OS 2.x. Go figure. They disappear when the Active SDK is the simulator.

GCC 4.0 -代码生成部分只出现在你设置活动SDK到设备- iPhone OS 2.x的。去搞清楚。当 Active SDK 是模拟器时,它们就会消失。

You should change your Active SDK to Device, change the settings, and then change back to Simulator. The settings made under Device should also hold for Simulator. This also works with eg. setting a -DDEBUG flag for preprocessing.

您应该将 Active SDK 更改为 Device,更改设置,然后更改回 Simulator。在设备下所做的设置也应适用于模拟器。这也适用于例如。为预处理设置 -DDEBUG 标志。

(Update: I was only half right. See Chris Espinosa's accepted answer re: this SDK bug. It's not that the GCC 4.0 section shows up when the Active SDK is set to "Device," it's that your Base SDK and Active SDK must match up to access these settings).

(更新:我只对了一半。请参阅 Chris Espinosa 接受的答案:this SDK bug。当 Active SDK 设置为“Device”时,并不是 GCC 4.0 部分出现,而是您的 Base SDK 和 Active SDK 必须匹配最多访问这些设置)。

回答by epatel

When the program is running, can you do a CTRL-C in the Console window (while cursor is there). If you interruptthe program type info brwhich should give a list of the activebreakpoints, question then is, are they what you set?

当程序运行时,您可以在控制台窗口中执行 CTRL-C 吗(当光标在那里时)。如果您中断info br应该给出活动断点列表的程序类型,那么问题是,它们是您设置的吗?

回答by epatel

There are two gdb configuration files that can be good to have a look at.

有两个 gdb 配置文件可以很好地查看。

  • /etc/gdb.conf
  • /etc/gdb.conf

Mine have MD5 (/etc/gdb.conf) = 31b58e1ecf038554faadf777d63e9085

我的有 MD5 (/etc/gdb.conf) = 31b58e1ecf038554faadf777d63e9085

  • ~/.gdbinit
  • ~/.gdbinit

I have no, do you have one?

我没有,你有吗?

回答by Adam Byram

Have you verified that your build configuration is using your development certificate for code signing?

您是否已确认您的构建配置使用您的开发证书进行代码签名?

If you are using an Ad Hoc certificate, it'll still build and run fine, but shortly after launching the app, Xcode will detach from the device so no breakpoints will ever hit. You can quickly tell whether it has detached or not if you look in the bottom left of the main Xcode window after you've clicked Build & Go - if you aren't using the actual development device certificate, you'll see a message that says something like "Invalid Hex Code Received from Device".

如果您使用的是 Ad Hoc 证书,它仍然可以正常构建和运行,但在启动应用程序后不久,Xcode 将与设备分离,因此不会出现断点。如果您在单击 Build & Go 后查看 Xcode 主窗口的左下角,您可以快速判断它是否已分离 - 如果您没有使用实际的开发设备证书,您将看到一条消息说“从设备接收到无效的十六进制代码”之类的东西。

回答by epatel

I looks like you are running the program as root, that doesn't seem to be right...

我看起来你正在运行程序root,这似乎不对......

回答by Bdebeez

This may be an exceptionally obvious answer, but it could work. Have you tried adding breakpoints in code other than main() ? For instance, in the App Delegate's applicationDidFinishLaunching method? I know it SHOULD go through main first, but since that code in main is not normally modified for iPhone apps, it might be a bit flaky. It's worth a try, anyway.

这可能是一个非常明显的答案,但它可以奏效。您是否尝试过在 main() 以外的代码中添加断点?例如,在 App Delegate 的 applicationDidFinishLaunching 方法中?我知道它应该首先通过 main,但是由于 main 中的代码通常不会为 iPhone 应用程序修改,所以它可能有点不稳定。无论如何,值得一试。

Also, to find the GCC 4.0 - Code Generation options, click the triangle to open the Targets group, and click on your app's name underneath Targets. Click on the Info button up in the top of the Xcode window and you'll get the settings for your app. Go to Build. Make sure the Show: dropdown is set to All Settings. If you scroll down from there, it should be one of the lists you can edit (after Versioning and before GCC 4.0 - Language)

此外,要找到 GCC 4.0 - 代码生成选项,请单击三角形以打开目标组,然后单击目标下方的应用程序名称。单击 Xcode 窗口顶部的 Info 按钮,您将获得应用程序的设置。转到构建。确保 Show: 下拉菜单设置为 All Settings。如果您从那里向下滚动,它应该是您可以编辑的列表之一(在版本控制之后和 GCC 4.0 - 语言之前)