I too had this problem, but I just figured out how to resolve it.
1. In the project window, expand the disclosure triangle next to Targets
2. Under Targets
, select Calculator
3. On the toolbar, click on the Info button. A window titled "Target 'Calculator' Info" will appear.
4. In that window, select the Build tab.
5. In the combo box next to "Configuration," select "Active Configuration (Debug)."
6. In the combo box next to "Collection," select "Linking."
7. Uncheck the box next to ZeroLink
Now the "Step Into" example should work.
Here's what the Xcode User Guide
says about Zerolink:
quote:ZeroLink speeds application development time by eliminating the link process from development builds. Instead, Xcode generates an application stub that contains the full paths to the object files that make up the application. At runtime, each object (.o) file is linked as it’s needed. This works only when running your application within Xcode. You cannot deploy applications using ZeroLink.
To turn ZeroLink on or off, use the ZeroLink (ZERO_LINK) build setting. ZeroLink is enabled by default in the Debug build configuration. If you build with this build configuration, you automatically get ZeroLink functionality. See “Build Configurations” for more information on using build configurations. ZeroLink works only for native targets.
I gather the debugger finds this last-minute linking to be confusing. Another thing I noticed about Zerolink: originally I mistyped the name of the calculate function when I called it, and the error wasn't caught until runtime. This seems like a "feature" I can live without.
One thing confuses me. According to the release notes:
quote:The project’s build settings exist “below” the target’s build settings, so every target in a project will be based on the project’s build settings.
For example, if you set “Zero Link” to YES in the “Debug” configuration for the project, it is used by default in the “Debug” configuration on all targets in the project. Setting “Zero Link” on the “Debug” configuration of a target will override the setting inherited from the project.
Yet if you check the project build settings (select Project->Project Settings), Zerolink is unchecked. So the target's Zerolink setting isn't being inherited from the project. But then, where is it coming from?