Re: Build errors on AIX

Harald Koenig
2010-02-24T14:09:06Z

On Feb 24, Pedro Alves wrote:

> > > "gdb-CVS-20100222/gdb/aix-thread.c", line 352.46: 1506-280 (W) Function argument assignment between types "int*" and "unsigned int*" is not allowed.
> ^^^^^^
>
> How does one read that? line 352, column 46? On my sources,

oops, cut'n'paste error from the log file -- sorry!

yes. that's a (W)arning in line 352, don't care;)

the real error msg was this one -- fix is in my last mail:

"gdb-CVS-20100222/gdb/aix-thread.c", line 651.14: 1506-343 (S) Redeclaration of getthrds differs from previous declaration on line 904 of "/usr/include/procinfo.h".

> I can't really guess exactly what's going on here. AIX/RS6000
> is probably the port that most needs love of all the supported
> ports. E.g, I wouldn't be surprised if recent changes like PIE
> or multi-program support and the revamping around these broke
> this port, for it does things in non-standard ways. These
> commands may offer some clues:
>
> "(gdb) maint info breakpoints"
> "(gdb) set debug infrun 1"
> "(gdb) set target infrun 1"

(gdb) set target infrun 1
Ambiguous set command "target infrun 1": target-async, target-charset, target-wide-charset.

so:
(gdb) set debug infrun 1
(gdb) r
Starting program: a.out
infrun: proceed (addr=0xffffffff, signal=0, step=0)
infrun: resume (step=0, signal=0), trap_expected=0
hello
infrun: wait_for_inferior (treat_exec_as_sigtrap=0)
infrun: target_wait (-1, status) =
infrun: 356558 [process 356558],
infrun: status->kind = exited, status = 9
infrun: infwait_normal_state
infrun: TARGET_WAITKIND_EXITED

Program exited with code 011.
infrun: stop_stepping
(gdb) maint info breakpoints
Num Type Disp Enb Address What
-1 thread events keep y 0xd04b37e8 <__pthread_init> inf 1
(gdb) b main
Cannot access memory at address 0xf0322508
(gdb) maint info breakpoints
Num Type Disp Enb Address What
-1 thread events keep y 0xd04b37e8 <__pthread_init> inf 1
(gdb) b main
Cannot access memory at address 0xf0322508
(gdb)

and for AIX 5.1:

gdb a.out
GNU gdb (GDB) 7.1.50.20100222-cvs
Reading symbols from a.out...(no debugging symbols found)...done.
(gdb) b main
Breakpoint 1 at 0x1000039c
(gdb) maint info breakpoints
Num Type Disp Enb Address What
1 breakpoint keep y 0x1000039c <main+32> inf 1
(gdb) r
Starting program: a.out
Error in re-setting breakpoint 1: Cannot access memory at address 0x0
Error in re-setting breakpoint 1: Cannot access memory at address 0x0
hello

Program exited normally.
(gdb) r
Starting program: a.out
hello

Program exited normally.
(gdb) maint info breakpoints
Num Type Disp Enb Address What
1 breakpoint keep n 0x1000039c <main+32> inf 1
-1 thread events keep y 0xd0347e44 <__pthread_init> inf 1
(gdb) r
Starting program: a.out
hello

Program exited normally.
(gdb) b main
Note: breakpoint 1 (disabled) also set at pc 0x1000039c.
Breakpoint 2 at 0x1000039c
(gdb) maint info breakpoints
Num Type Disp Enb Address What
1 breakpoint keep n 0x1000039c <main+32> inf 1
-1 thread events keep y 0xd0347e44 <__pthread_init> inf 1
2 breakpoint keep y 0x1000039c <main+32> inf 1
(gdb) r
Starting program: a.out

Breakpoint 2, 0x1000039c in main ()
(gdb)

ah, I just notice that bp #1 got disabled (likely because of that "Error in re-setting breakpoint 1: Cannot access memory at address 0x0").

instead of a 2nd "b main" it also works to enable #1 with "en b 1" ...

> If you have an older gdb that works, I think we get to
> debug the new gdb to try to track this down.

yes, our gdb-6.8 binary works just fine for me on AIX 5.1++ ...