Jump To:
Leopard Reference Library: Tools
The compiler and debugger technologies of Mac OS X are essential for building software projects. Apple supports a number of open-source technologies, such as GCC and GDB, which can be used from Xcode or from the command line.

Document Descriptions
On Off
Display

Sort by
Title
Sorted by
Resource Type
Sort by
Date
Bug Reporting Best Practices (HTML)
Provides information regarding the best means in which to file a bug report.
Articles 2007-05-25
The GNU Compiler Collection on Mac OS X (HTML)
Learn about the open-source tools GCC and GDB, and enhancements specific to Mac OS X.
Articles 2004-07-12
Dynamic Library Programming Topics (HTML) (PDF)
Explains how to design, implement, and use dynamic libraries.
Guides 2009-02-26
Mac OS X ABI Function Call Guide (HTML) (PDF)
Describes the function-calling conventions used in the architectures supported by Mac OS X.
Guides 2009-02-04
Mach-O Programming Topics (HTML) (PDF)
Explains the use of the Mac OS X runtime architecture, including program types, loading and executing code, and using libraries and plug-ins.
Guides 2009-02-04
Debugging with GDB (HTML)
Open-source document that explains how to use GDB to debug programs.
Guides 2008-06-19
GDB Internals (HTML)
Open-source document that explains the GDB implementation.
Guides 2008-06-19
GNU C 4.2 Preprocessor Internals (HTML)
Guides 2008-01-23
GNU Compiler Collection (GCC) 4.2 Internals (HTML)
Guides 2008-01-23
GNU Compiler Collection (GCC) Internals (HTML)
Guides 2007-12-11
User's Guide to gperf 3.0.1 (HTML)
Guides 2007-12-03
GCC Porting Guide (HTML) (PDF)
Provides guidance on how to migrate projects to new GCC releases.
Guides 2006-10-03
C++ Runtime Environment Programming Guide (HTML) (PDF)
Provides information about how to create and deploy C++ binaries.
Guides 2006-06-28
Jar Bundler User Guide (HTML) (PDF)
Conceptual information and a tutorial about deploying JAR-based applications as Mac OS X application bundles.
Guides 2006-05-23
Xcode Build Setting Reference (HTML) (PDF)
Describes the build settings used in the Xcode build system to compile source code and produce binary files.
Reference 2009-03-04
Mac OS X Assembler Reference (HTML) (PDF)
Describes the syntax, directives, and specific options required for the Mac OS X assembler.
Reference 2009-01-07
GNU Make (HTML)
Documentation of the GNU make utility.
Reference 2008-06-19
Libtool (HTML)
Documentation for GNU Libtool.
Reference 2008-06-19
Netwide Assembler Guide (HTML)
Describes the Netwide Assembler for Intel-based Macs.
Reference 2008-06-19
STABS Debug Format (HTML)
Open-source document that explains the STABS format of symbolic debugging information.
Reference 2008-06-19
GNU C 4.2 Preprocessor User Guide (HTML)
Describes the Apple version of the GNU C 4.2 Preprocessor.
Reference 2008-01-23
GNU C/C++/Objective-C 4.2.1 Compiler User Guide (HTML)
Describes the Apple version of the GNU 4.2.1 compiler.
Reference 2008-01-23
GNU C 4.0 Preprocessor User Guide (HTML)
Describes the Apple version of the GNU C 4.0 Preprocessor.
Reference 2007-10-31
GNU C/C++/Objective-C 4.0.1 Compiler User Guide (HTML)
Describes the Apple version of the GNU 4.0.1 compiler.
Reference 2007-10-31
GNU macro processor (HTML)
Documentation on the GNU macro processor.
Reference 2007-10-31
Mac OS X ABI Dynamic Loader Reference (HTML) (PDF)
Describes the functions used to access Mach-O files.
Reference 2005-11-09
GDB Quick Reference (PDF)
Printable quick reference card.
Reference
GNU C/C++/Objective-C 3.3 Compiler (HTML)
Explains how to use the GNU compilers from the command line.
Reference
Dynamic Loader Release Notes (HTML)
Updated for Mac OS X v10.5.
Release Notes 2009-03-04
LLVM-GCC Release Notes (HTML)
Lists changes to LLVM-GCC technology.
Release Notes 2008-09-09
GCC 4 Release Notes (HTML)
Updated for Xcode 3.0
Release Notes 2007-10-31
Symbol Variants Release Notes (HTML)
Describes symbol variants, a way of providing multiple versions of symbols for backwards compatibility.
Release Notes 2007-10-16
GDB Release Notes (HTML)
Updated for Mac OS X v10.5
Release Notes 2007-05-16
Compiler Tools Release Notes (HTML)
Describes the latest changes to the Mach-O assemblers, linkers, and object file tools.
Release Notes 2007-04-11
GCC 3 Release Notes (HTML)
Updated for Xcode 2.3
Release Notes 2006-05-23
CxxNewDelete (HTML) (DMG) (ZIP)
How to override the C++ 'new' and 'delete' operators.
Sample Code 2006-10-03
MachPortDump (HTML) (DMG) (ZIP)
Dumps out the Mach port name space of a process; useful when debugging port right leaks.
Sample Code 2005-08-10
ManagedObjectDataFormatter (HTML) (DMG) (ZIP)
A Data Formatter for Xcode 2.0 and 2.1 that displays NSManagedObject * variables.
Sample Code 2005-06-01
Moving To GCC 4.0 (HTML) (DMG) (ZIP)
Shows how to fix code that GCC 3.3 accepts but GCC 4.0 doesn't.
Sample Code 2005-06-01
Kernel Core Dumps (HTML)
TN2118: Explains how to gather and use remote kernel core dumps.
Technical Notes 2008-11-12
Debugging An Authorization Plug-In With Xcode (HTML)
TN2108: A tutorial on how to use Xcode to debug an authorization plug-in.
Technical Notes 2008-09-08
CrashReporter (HTML)
TN2123: Describes CrashReporter and how to debug with crash logs.
Technical Notes 2008-04-01
C++ Tips and Tricks for Mac OS X (HTML)
TN2185: Tips and tricks for beginning to advanced C++ programmers on Mac OS X.
Technical Notes 2007-05-25
Mac OS X Debugging Magic (HTML)
TN2124: Collection of Mac OS X debugging hints and tips.
Technical Notes 2007-01-10
Nested Functions in Xcode (HTML)
TN2161: This technote explains how to port code which uses nested functions in Xcode 2.2.
Technical Notes 2006-01-10
Getting Started with GDB (HTML) (日本語 HTML)
TN2032: Explains common C, C++ and Objective-C debugging tasks using gdb, plus helpful tips and tricks.
Technical Notes 2001-12-07
GDB for MacsBug Veterans (HTML)
TN2030: Translate your experience with MacsBug into a working knowledge of the GNU source-level debugger (GDB).
Technical Notes 2001-10-18
Generating a Non-Maskable Interrupt (NMI) (HTML) (日本語 HTML)
QA1264: Explains how to generate a non-maskable interrupt (NMI) on modern Macintosh systems.
Technical Q&As 2008-10-13
Disabling Processor Cores on a Multi-Core System (HTML) (日本語 HTML)
QA1141: Describes how to disable processor cores on a multi-core system for testing purposes.
Technical Q&As 2008-09-16
Debugging Process Startup (HTML)
QA1573: Describes techniques for debugging a process's startup code.
Technical Q&As 2007-12-21
Debugging a WebKit Plug-in in Xcode (HTML)
QA1500: Directions for debugging a WebKit plug-in in Xcode.
Technical Q&As 2007-06-05
Using GCOV from Xcode (HTML)
QA1514: Illustrates configuring your Xcode project to work with the GCOV code coverage tool.
Technical Q&As 2007-02-23
Using static versions of existing dynamic libraries (HTML)
QA1393: Illustrates how to select a static version of a library when a dynamic version of the library exists.
Technical Q&As 2006-10-24
Building Objective-C static libraries with categories (HTML)
QA1490: Describes how to properly build Objective-C static libraries that contain categories on existing classes.
Technical Q&As 2006-10-03
How do I use asserts while debugging? (HTML)
QA1431: How do I enable asserts so they log their messages and/or break when I'm debugging?
Technical Q&As 2006-06-30
Deprecated CALL_ON_[UN]LOAD pragmas (HTML)
QA1429: Replace deprecated CALL_ON_[UN]LOAD pragmas with constructor [destructor] function attributes.
Technical Q&As 2006-01-10
What are the predefined macros for GCC? (HTML)
QA1424: Shows how to display a list of GCC predefined macros.
Technical Q&As 2005-07-06
Symbol to Library in GDB (HTML)
QA1388: Shows how to find the library containing a symbol in GDB.
Technical Q&As 2004-11-15
Detecting the Debugger (HTML)
QA1361: Shows how to determine whether you're being run under the debugger.
Technical Q&As 2004-10-27
Using the latest Mac OS X headers in my CFM project with CodeWarrior (HTML)
QA1379: Describes how to use the latest Mac OS X headers in CodeWarrior by modifying the CFM project access paths.
Technical Q&As 2004-10-08
Remote or Two-Machine Debugging Applications with GDB (HTML)
QA1279: Explains how to setup a remote or two-machine debugging configuration using gdb and ssh.
Technical Q&As 2003-09-09
Can't attach during two-machine debugging with GDB (HTML) (日本語 HTML)
Deprecated - QA1019: Describes a workaround for a problem attaching during two-machine debugging on Mac OS X 10.0.x.
Technical Q&As 2003-06-02
'dynamic shared library not made a weak library in output with MACOSX_DEPLOYMENT_TARGET...' bug (HTML) (日本語 HTML)
QA1233: Why 'ld' may give a warning about the Mac OS X_DEPLOYMENT_TARGET environment variable and its failure to weak link.
Technical Q&As 2003-04-01
Static linking of user binaries on Mac OS X (HTML) (日本語 HTML)
QA1118: Explains why static linking of user binaries is not supported on Mac OS X, and possible workarounds.
Technical Q&As 2002-02-07
Setting environment variables for user processes (HTML)
QA1067: Tells how to set environment variables for user processes.
Technical Q&As 2001-10-25
Using Pascal strings in Project Builder (HTML)
QA1053: Shows how to force gcc (compiler used by Project Builder) to understand Pascal strings.
Technical Q&As 2001-06-28
Stub Library FAQ (HTML)
PLAT28: Explains stub libraries and their use, and differences between shared libraries and stub libraries.
Technical Q&As 1997-03-14
Using qd and QDGlobals (HTML) (日本語 HTML)
Deprecated - QD40: Why a sample program compiled with SC may give the link error: undefined entry qd. Provides a solution.
Technical Q&As 1996-02-09