The Arctic Mac // Tutorials. Introduction If you haven't already done so, you might want to read the intro to hidden preferences.
Now, you've probably seen lots of hidden preferences by this point, and you're familiar with the defaults command, but maybe you've wondered how people figure them out... In the past, finding these hidden preferences involved going through the binary code of an application and looking for readable strings, and then guessing how they might work. However, as of Mac OS 10.6, this no longer works, because of changes in the way executables are built and stored.
So, we turn to gdb, the GNU debugger, which allows us to inspect running processes, and see what strings they use. Oh, and the exact routine suggested below works on 10.6, but may or may not work on older systems. Getting off the Ground For starters here, you'll need to have the Mac OS X developer tools installed. Getting Our Hands Dirty This does several things. GNU Debugger - GDB Tutorial. GDB Tutorial. Gdb is a debugger for C (and C++).
It allows you to do things like run the program up to a certain point then stop and print out the values of certain variables at that point, or step through the program one line at a time and print out the values of each variable after executing each line. It uses a command line interface. This is a brief description of some of the most commonly used features of gdb. Compiling To prepare your program for debugging with gdb, you must compile it with the -g flag. Gcc -g -o memsim memsim.c Invoking and Quitting GDB To start gdb, just type gdb at the unix prompt.
Gdb executable To exit the program just type quit at the (gdb) prompt (actually just typing q is good enough). Commands help. GDB Tutorial. A debugger is a program that runs other programs, allowing the user to exercise control over these programs, and to examine variables when problems arise. The most popular debugger for UNIX systems is gdb, the GNU debugger. gdb has tons of features, however, you only need to use a few for it to be useful.
There is complete documentation for gdb online, or you can read the man page (type "man gdb" at the unix command prompt), and the quick reference card is very handy. When you are execute a program that does not behave as you like, you need some way to step through you logic other than just looking at your code. Some things you want to know are: Once your executable has been generated by the compiler, it is run under the control of gdb by typing To begin, invoke emacs and edit the source program you want to debug. CFLAGS = -g -o (making sure the -g comes before the -o). To compile the program, hit the f5 key, or enter M-x compile. Compile command: make -k C-x ` file tokenize run lextest.dat. How to Debug Using GDB. Peter's gdb Tutorial: Table Of Contents.
RMS's gdb Tutorial. The Arctic Mac // Tutorials. GDB Documentation. Gdb Tutorial. Contents Introduction This tutorial was originally written for CS 342 at Washington University.
It is still maintained by Andrew Gilpin. Who should read this? This tutorial is written to help a programmer who is new to the Unix environment to get started with using the gdb debugger. Source code To help illustrate some of the debugging principles I will use a running example of a buggy program. The code is very simple and consists of two class definitions, a node and a linked list. Preparations Environment settings gdb is in the gnu package on CEC machines.
Debugging symbols gdb can only use debugging symbols that are generated by g++. Gdb is most effective when it is debugging a program that has debugging symbols linked in to it. Debugging When to use a debugger Debugging is something that can't be avoided. Before a bug can be fixed, the source of the bug must be located.
Go ahead and make the program for this tutorial, and run the program. Loading a program Inspecting crashes Stepping Notes.