strange gdb behavior
Max N. Boyarov
m.boyarov at gmail.com
Tue Nov 3 11:19:42 UTC 2009
Kostik Belousov <kostikbel at gmail.com> writes:
> On Mon, Nov 02, 2009 at 03:52:33PM +0200, Max Boyarov wrote:
>> Hi,
[cut]
>
> Can you check it on RELENG_7 ? It seems to be another old gdb bug.
> With gdb 7.0,
> (gdb) b main
> Breakpoint 1 at 0x8048414: file hello.c, line 8.
> (gdb) r
> Starting program: /usr/home/kostik/build/bsd/6/stuff/hello1
>
> Breakpoint 1, main (argc=1, argv=0xbfbfe53c) at hello.c:8
> 8 for (i = 0; i < argc; i++)
>
> while in-tree gdb shows me the same behaviour as yours.
$ cat gdbt.c
#include <unistd.h>
int
main(int argc, char **argv)
{
int t;
t = getopt(argc, argv, "f:");
return t;
}
$ cat gdbt.gdb
b main
run
print &argc
next
print &argc
list
quit
$ cat gdbt.sh
#!/bin/sh
uname -mr
cc -O0 -ggdb -o gdbt gdbt.c && gdb -nx -quiet -x gdbt.gdb gdbt
9.0-CURRENT i386 / r198846
Breakpoint 1 at 0x80483f0: file gdbt.c, line 5.
Breakpoint 1, main (argc=Error accessing memory address 0x2: Bad address.
) at gdbt.c:5
5 {
$1 = (int *) 0x2
main (argc=1, argv=0xbfbfe7e0) at gdbt.c:8
8 t = getopt(argc, argv, "f:");
$2 = (int *) 0xbfbfe7c0
3 int
4 main(int argc, char **argv)
5 {
6 int t;
7
8 t = getopt(argc, argv, "f:");
9
10 return t;
11 }
9.0-CURRENT amd64 /r198480
Breakpoint 1 at 0x40057f: file gdbt.c, line 8.
Breakpoint 1, main (argc=1, argv=0x7fffffffeac0) at gdbt.c:8
8 t = getopt(argc, argv, "f:");
$1 = (int *) 0x7fffffffea5c
10 return t;
$2 = (int *) 0x7fffffffea5c
5 {
6 int t;
7
8 t = getopt(argc, argv, "f:");
9
10 return t;
11 }
7.2-RELEASE-p1 i386
Breakpoint 1 at 0x8048400: file gdbt.c, line 5.
Breakpoint 1, main (argc=Error accessing memory address 0x2: Bad address.
) at gdbt.c:5
5 {
$1 = (int *) 0x2
main (argc=1, argv=0xbfbfeca4) at gdbt.c:8
8 t = getopt(argc, argv, "f:");
$2 = (int *) 0xbfbfec80
3 int
4 main(int argc, char **argv)
5 {
6 int t;
7
8 t = getopt(argc, argv, "f:");
9
10 return t;
11 }
7.2-RELEASE-p4 amd64
Breakpoint 1 at 0x40057f: file gdbt.c, line 8.
Breakpoint 1, main (argc=1, argv=0x7fffffffebc8) at gdbt.c:8
8 t = getopt(argc, argv, "f:");
$1 = (int *) 0x7fffffffeb5c
10 return t;
$2 = (int *) 0x7fffffffeb5c
5 {
6 int t;
7
8 t = getopt(argc, argv, "f:");
9
10 return t;
11 }
--
Max N. Boyarov
xmpp:zotrix at jabber.ru
More information about the freebsd-hackers
mailing list