20.09.2015 Views

Programming in C

Kochan - ProgramminginC

Kochan - ProgramminginC

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Debugg<strong>in</strong>g Programs with gdb<br />

403<br />

Program 18.5<br />

Cont<strong>in</strong>ued<br />

21 <strong>in</strong>t array[5] = {1, 2, 3, 4, 5};<br />

(gdb) pr<strong>in</strong>t today<br />

$1 = {<br />

month = 10,<br />

day = 11,<br />

year = 2004<br />

}<br />

(gdb) pr<strong>in</strong>t array<br />

This array hasn't been <strong>in</strong>itialized yet<br />

$2 = {-1881069176, -1880816132, -1880815740, -1880816132, -1880846287}<br />

(gdb) step<br />

Run another l<strong>in</strong>e<br />

23 char *str<strong>in</strong>g = "test str<strong>in</strong>g";<br />

(gdb) pr<strong>in</strong>t array<br />

Now try it<br />

$3 = {1, 2, 3, 4, 5} That's better<br />

(gdb) list 23,28<br />

23 char *str<strong>in</strong>g = "test str<strong>in</strong>g";<br />

24 <strong>in</strong>t i = 3;<br />

25<br />

26 newdate = (struct date *) malloc (sizeof (struct date));<br />

27 newdate->month = 11;<br />

28 newdate->day = 15;<br />

(gdb) step 5<br />

Execute 5 l<strong>in</strong>es<br />

29 newdate->year = 2004;<br />

(gdb) pr<strong>in</strong>t str<strong>in</strong>g<br />

$4 = 0x1fd4 "test str<strong>in</strong>g"<br />

(gdb) pr<strong>in</strong>t str<strong>in</strong>g[1]<br />

$5 = 101 'e'<br />

(gdb) pr<strong>in</strong>t array[i] The program set i to 3<br />

$6 = 3<br />

(gdb) pr<strong>in</strong>t newdate<br />

This is a po<strong>in</strong>ter variable<br />

$7 = (struct date *) 0x100140<br />

(gdb) pr<strong>in</strong>t newdate->month<br />

$8 = 11<br />

(gdb) pr<strong>in</strong>t newdate->day + i Arbitrary C expression<br />

$9 = 18<br />

(gdb) pr<strong>in</strong>t $7<br />

Access previous value<br />

$10 = (struct date *) 0x100140<br />

(gdb) <strong>in</strong>fo locals<br />

Show the value of all local variables<br />

today = {<br />

month = 10,<br />

day = 11,<br />

year = 2004<br />

}<br />

array = {1, 2, 3, 4, 5}<br />

newdate = (struct date *) 0x100140<br />

str<strong>in</strong>g = 0x1fd4 "test str<strong>in</strong>g"

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!