2003-04-29 Adam Fedor * gdb.texinfo: Add Objective-C documentation. Index: gdb.texinfo =================================================================== RCS file: /cvs/src/src/gdb/doc/gdb.texinfo,v retrieving revision 1.156 diff -u -p -r1.156 gdb.texinfo --- gdb.texinfo 14 Apr 2003 18:42:28 -0000 1.156 +++ gdb.texinfo 30 Apr 2003 03:30:48 -0000 @@ -210,6 +210,10 @@ syntax. it may be necessary to refer to some variables with a trailing underscore. +@cindex Objective-C +@value{GDBN} can be used to debug programs written in Objective-C, +using either the Apple/NeXT or the GNU Objective-C runtime. + @menu * Free Software:: Freely redistributable software * Contributors:: Contributors to GDB @@ -3180,7 +3184,8 @@ end @cindex overloading @cindex symbol overloading -Some programming languages (notably C@t{++}) permit a single function name +Some programming languages (notably C@t{++} and Objective-C) permit a +single function name to be defined several times, for application in different contexts. This is called @dfn{overloading}. When a function name is overloaded, @samp{break @var{function}} is not enough to tell @value{GDBN} where you want @@ -7499,6 +7504,9 @@ C source file @itemx .c++ C@t{++} source file +@itemx .m +Objective-C source file + @item .f @itemx .F Fortran source file @@ -7774,7 +7782,7 @@ being set automatically by @value{GDBN}. @node Support @section Supported languages -@value{GDBN} supports C, C@t{++}, Fortran, Java, assembly, and Modula-2. +@value{GDBN} supports C, C@t{++}, Objective-C, Fortran, Java, assembly, and Modula-2. @c This is false ... Some @value{GDBN} features may be used in expressions regardless of the language you use: the @value{GDBN} @code{@@} and @code{::} operators, @@ -7791,8 +7799,9 @@ books written on each of these languages language reference or tutorial. @menu -* C:: C and C@t{++} -* Modula-2:: Modula-2 +* C:: C and C@t{++} +* Objective-C:: Objective-C +* Modula-2:: Modula-2 @end menu @node C @@ -8309,7 +8318,84 @@ available choices, or to finish the type @xref{Completion,, Command completion}, for details on how to do this. @end table -@node Modula-2 +@node Objective-C +@subsection Objective-C + +This section provides information about some commands and command +options that are useful for debugging Objective-C code. + +@menu +* Method Names in Commands:: +* The Print Command with Objective-C:: +@end menu + +@node Method Names in Commands, The Print Command with Objective-C, Objective-C, Objective-C +@subsubsection Method Names in Commands + +The following commands have been extended to accept Objective-C method +names as line specifications: + +@itemize +@item @code{clear} +@item @code{break} +@item @code{info line} +@item @code{jump} +@item @code{list} +@end itemize + +For example, to set a breakpoint at the @code{create} instance method of +class @code{Fruit} in the program currently being debugged, enter: + +@example +break -[Fruit create] +@end example + +To list ten program lines around the @code{initialize} class method, +enter: + +@example +list +[NSText initialize] +@end example + +In the current version of GDB, the plus or minus sign is required. In +future versions of GDB, the plus or minus sign will be optional, but you +can use it to narrow the search. It is also possible to specify just a +method name: + +@example +break create +@end example + +You must specify the complete method name, including any colons. If +your program's source files contain more than one @code{create} method, +you'll be presented with a numbered list of classes that implement that +method. Indicate your choice by number, or type @samp{0} to exit if +none apply. + +As another example, to clear a breakpoint established at the +@code{makeKeyAndOrderFront:} method of the @code{NSWindow} class, enter: + +@example +clear -[NSWindow makeKeyAndOrderFront:] +@end example + +@node The Print Command with Objective-C +@subsubsection The Print Command With Objective-C + +The print command has also been extended to accept methods. For example: + +@example +print -[object hash] +@end example + +will tell gdb to send the -hash message to object and print the +result. Also an additional command has been added, @code{print-object} +or @code{po} for short, which is meant to print the description of an +object. However, this command may only work with certain Objective-C +libraries that have a particular hook function, called +@code{_NSPrintForDebugger} defined. + +@node Modula-2, , Objective-C, Support @subsection Modula-2 @cindex Modula-2, @value{GDBN} support @@ -8948,6 +9034,20 @@ outside of functions (i.e.@: excluding l Print the names and data types of all variables (except for local variables) whose names contain a match for regular expression @var{regexp}. + +@kindex info classes +@item info classes +@itemx info classes @var{regexp} +Display all Objective-C classes in your program, or +(with the @var{regexp} argument) all those matching a particular regular +expression. + +@kindex info selectors +@item info selectors +@itemx info selectors @var{regexp} +Display all Objective-C selectors in your program, or +(with the @var{regexp} argument) all those matching a particular regular +expression. @ignore This was never implemented.