iPhone Dev: Xcode debugger does not stop on breakpoints

21,180

Solution 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.

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.

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

Check the box, enter a reasonable path into the path field, try your debug scenario, then file a bug at http://bugreporter.apple.com with 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.

Solution 2

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

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

Solution 3

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.

Solution 4

The GCC 4.0 - Code Generation section 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.

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.

(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).

Solution 5

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).

Share:
21,180
Mike Marshall
Author by

Mike Marshall

Updated on June 05, 2020

Comments

  • Mike Marshall
    Mike Marshall almost 4 years

    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:

    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)

    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

    UPDATE 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

    here is the Console log (breakpoint set at first line of 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:

    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) 
    
  • Mike Marshall
    Mike Marshall about 15 years
    What info page is this on? I don't remember seeing this on the Executable or Target settings, but I will look again.
  • Mike Marshall
    Mike Marshall about 15 years
    argh, cannot find this setting anywhere under Target or Executable settings
  • Mike Marshall
    Mike Marshall about 15 years
    I have cleaned and rebuilt multiple times and started with Command-Option-Y with no luck.
  • Mike Marshall
    Mike Marshall about 15 years
    This is the most promising ting I've heard. I will double check the target's SDK settings tonight and then post back here (hopefully I can mark this one as answered by then)
  • Mike Marshall
    Mike Marshall about 15 years
    Yes, I've tried right inside the AppDelegate's startup code. Here's the thing. The app runs as I expect, so I know all the code is executed. It just doesn't hit breakpoints. cdespinosa's answer looks promising. Will post back tonight with a result.
  • Mike Marshall
    Mike Marshall about 15 years
    I'll try the Base/Active SDK changes tonight and post back here with results.
  • Benjamin Autin
    Benjamin Autin about 15 years
    That's cool, it's just something that had recently bitten me.
  • Benjamin Autin
    Benjamin Autin about 15 years
    I'm going to vote you up to counter the fact someone voted up my answer. while I guess my answer would be generally useful, the op explicitly said that it was not the case and I don't want to get even half a bounty I don't deserve.
  • Mike Marshall
    Mike Marshall about 15 years
    edited original post. Will post back if I get any feedback from apple mailing list
  • Mike Marshall
    Mike Marshall about 15 years
    (gdb) info br Num Type Disp Enb Address What 1 breakpoint keep y 0x000028cf in main at /Projects/TestApp/main.m:13 --- it does not stop at this breakpoint. This is the first line in main()
  • Mike Marshall
    Mike Marshall about 15 years
    MD5 (gdb.conf) = 31b58e1ecf038554faadf777d63e9085 :) - no .gdbinit
  • Mike Marshall
    Mike Marshall about 15 years
    i got desperate and logged in as root. I'll try in a different account
  • Jitendra Vyas
    Jitendra Vyas about 15 years
    what if you use the ctrl-c trick and add a new breakpoint, ie "br somefile.m:23" for a place in a button action? and "cont" try the button?
  • Elliot
    Elliot almost 15 years
    I had the same problem, and this fixed it for me. Thanks oldbeamer.
  • Mike Marshall
    Mike Marshall over 14 years
    I've seen it on a real mac and a hackin0sh. Not sure of the distro on the latter. If this tip works I'll vote up your comment.
  • kevinthompson
    kevinthompson over 13 years
    This is not a helpful answer, but I completely agree. I'd gladly pay $500 for a better Cocoa development IDE, but nobody is going to make one of those. The fact that Xcode is free discourages others from producing anything better, so Apple has responsibilities beyond those of many "free" projects.
  • Martin Winter
    Martin Winter over 13 years
    Fixed it for me as well. Thanks!