beautypg.com

2 setting display width, 3 setting breakpoints, 4 running the executable under gdb – HP gnu source-level debugger 5992-4701 User Manual

Page 20: 5 stepping to the next line in the source program

background image

$ (gdb) m4

HP gdb 3.0 for PA-RISC 1.1 or 2.0 (narrow), HP-UX 11.00.
Copyright 1986 - 2001 Free Software Foundation, Inc.
Hewlett-Packard Wildebeest 3.0 (based on GDB ) is covered by the
GNU General Public License. Type "show copying" to see the conditions to
change it and/or distribute copies. Type "show warranty" for warranty/support.

GDB reads only enough symbol data to know where to find the rest when needed; as
a result, the first prompt comes up very quickly.

1.2 Setting Display width

We now tell GDB to use a narrower display width than usual, so that examples fit in
this manual.

((gdb)) set width 70

We need to see how the m4 built-in changequote works. Having looked at the
source, we know the relevant subroutine is m4_changequote, so we set a breakpoint
there with the GDB break command.

1.3 Setting Breakpoints

Here we describe how to set a breakpoint.

((gdb)) break m4 changequote
Breakpoint 1 at 0x62f4: file builtin.c, line 879.

1.4 Running the executable under GDB

Using the run command, we start m4 under GDB control. As long as the control does
not reach the m4_changequote subroutine, the program runs as usual.

((gdb)) run

Starting program: /work/Editorial/gdb/gnu/m4/m4
define(foo,0000)

foo
0000

To trigger the breakpoint, we call changequote. GDB suspends execution of m4,
displaying information about the context where it stops.

changequote(,)

Breakpoint 1, m4_changequote (argc=3, argv=0x33c70)
at builtin.c:879
879 if (bad_argc(TOKEN_DATA_TEXT(argv[0]),argc,1,3))

1.5 Stepping to the next line in the source program

Now we use the command n (next) to advance execution to the next line of the current
function.

20

A Sample GDB Session