[IRCServices] Segmentation Error at startup with database load
Michael Felt
mamfelt at acm.org
Mon Jun 14 01:33:27 PDT 2004
Note: if the database files are removed, ircservices startups and
communicates with bahamut with no problems.
The core dump occurs on a restart.
1. IRC Version
[Jun 14 01:48:32 2004] IRC Services 5.0.32 starting up
HARDWARE/OS: PowerIV, 64 bit, AIX 5.2
Compiled with no special problems using gcc 3.3.2 downloaded from BULL
freeware.gcc.rte 3.3.2.0 C F gcc version 3.3.2
p.s. I had alomst gotten it ported to AIX xlC compiler, but also ran into
problems with __builtin* functions.
Apparantly only GCC has those.
2. NA atm (bahamut 1.8)
3. Basic error: core dump, segmentation error
Segmentation fault in load_one_serverstats at line 2316 in file
"modules/database/version4.c"
2316 ss->t_join = tmp32;
4.
(dbx) list 2305, 2320
2305 static ServerStats *load_one_serverstats(dbFILE *f)
2306 {
2307 ServerStats *ss;
2308 char *servername;
2309 int32 tmp32;
2310
2311 SAFE(read_string(&servername, f));
2312 ss = new_serverstats(servername);
2313 free(servername);
2314 servername = NULL;
2315 SAFE(read_int32(&tmp32, f));
2316 ss->t_join = tmp32;
2317 SAFE(read_int32(&tmp32, f)); /* t_quit */
2318 /* Avoid join>=quit staying true on load (which would indicate
that the
2319 * server is online even before any server connections are
processed) */
2320 ss->t_quit = time(NULL)-1;
(dbx)
===
Basically, new_serverstats return value is not properly returned.
===
more detail
(dbx) stop at 2312
[2] stop at "version4.c":2312
(dbx) rerun
[ /usr/local/sbin/ircservices ]
[2] stopped in load_one_serverstats at line 2312 in file
"modules/database/version4.c"
2312 ss = new_serverstats(servername);
(dbx) where
load_one_serverstats(f = 0x2008c668), line 2312 in "version4.c"
open_statserv_db(dbname = "stats.db"), line 2377 in "version4.c"
init_module_statserv_main(??), line 622 in "main.c"
internal_init_module(??), line 388 in "modules.c"
load_module(??), line 417 in "modules.c"
unnamed block $b64, line 848 in "init.c"
init.init(??, ??), line 848 in "init.c"
main.main(ac = ??, av = 0x2ff22b04, envp = 0x2ff22b0c), line 225 in "main.c"
(dbx) dump
load_one_serverstats(f = 0x2008c668), line 2312 in "version4.c"
servername = "Ascendent.tdzk"
ss = (nil)
tmp32 = 536944164
(dbx) registers
$r0:0x1001d27c $stkp:0x2ff22788 $toc:0x2001508c $r3:0x00000000
$r4:0x00000fe9 $r5:0x201c56e7 $r6:0x6e64656e $r7:0x742e7464
$r8:0x7a6b0000 $r9:0x00000000 $r10:0xf01c5f34 $r11:0x00000000
$r12:0x1001f9c0 $r13:0xdeadbeef $r14:0x00000001 $r15:0x2ff22b04
$r16:0x2ff22b0c $r17:0x00000000 $r18:0xdeadbeef $r19:0xdeadbeef
$r20:0xdeadbeef $r21:0xdeadbeef $r22:0xdeadbeef $r23:0xdeadbeef
$r24:0xdeadbeef $r25:0x00000001 $r26:0x2ff22b04 $r27:0x00000001
$r28:0x2008c488 $r29:0x00000001 $r30:0x2008c668 $r31:0x00000000
$iar:0x1001d288 $msr:0x0002d0b2 $cr:0x28222244 $link:0x1001d27c
$ctr:0xd01f0278 $xer:0x0000000f $mq:0xdeadbeef
Condition status = 0:e 1:l 2:e 3:e 4:e 5:e 6:g 7:g
[unset $noflregs to view floating point registers]
in load_one_serverstats at line 2312 in file "modules/database/version4.c"
0x1001d288 (load_one_serverstats+0x30) 812206cc lwz r9,0x6cc(r2)
(dbx) whatis ss
register ServerStats *ss;
(dbx)
====
(dbx) step
[2]
Interrupt in load_one_serverstats at line 2312 in file
"modules/database/version4.c"
2312 ss = new_serverstats(servername);
(dbx) step
stopped in __dblocal_new_serverstats_stub at line 189 in file
"modules/database/extsyms.c"
189 IMPORT_FUNC("statserv/main", module_statserv, new_serverstats);
(dbx)
, etc..
====
2312 ss = new_serverstats(servername);
(dbx) registers
$r0:0x1001d2ac $stkp:0x2ff22788 $toc:0x2001508c $r3:0x00008080
$r4:0x2008b0d4 $r5:0x2008b576 $r6:0x00000000 $r7:0x007a6b00
$r8:0x7a6b0000 $r9:0x00008080 $r10:0x7f7f7f7f $r11:0x00000004
$r12:0x00008080 $r13:0xdeadbeef $r14:0x00000001 $r15:0x2ff22b04
$r16:0x2ff22b0c $r17:0x00000000 $r18:0xdeadbeef $r19:0xdeadbeef
$r20:0xdeadbeef $r21:0xdeadbeef $r22:0xdeadbeef $r23:0xdeadbeef
$r24:0xdeadbeef $r25:0x00000001 $r26:0x2ff22b04 $r27:0x00000001
$r28:0x2008c488 $r29:0x00000001 $r30:0x2008c668 $r31:0x00000000
$iar:0x1001d2ac $msr:0x0000d0b2 $cr:0x24222224 $link:0x1001d2ac
$ctr:0x00000004 $xer:0x0000000f $mq:0xdeadbeef
Condition status = 0:e 1:g 2:e 3:e 4:e 5:e 6:e 7:g
[unset $noflregs to view floating point registers]
in load_one_serverstats at line 2312 in file "modules/database/version4.c"
0x1001d2ac (load_one_serverstats+0x54) 80410014 lwz r2,0x14(r1)
(dbx) / ss
2316 ss->t_join = tmp32;
(dbx) stepi
stopped in load_one_serverstats at 0x1001d2b0
0x1001d2b0 (load_one_serverstats+0x58) 7c7f1b78 mr r31,r3
(dbx) stepi
stopped in load_one_serverstats at 0x1001d2b4
0x1001d2b4 (load_one_serverstats+0x5c) 80610038 lwz r3,0x38(r1)
(dbx) print ss
0x00008080
ABOVE it seems that ss is finally getting it's value (in r31, was nil, now
0x0008080 (from r3)
(dbx) registers
$r0:0x1001d2ac $stkp:0x2ff22788 $toc:0x2001508c $r3:0x2008b0c8
$r4:0x2008b0d4 $r5:0x2008b576 $r6:0x00000000 $r7:0x007a6b00
$r8:0x7a6b0000 $r9:0x00008080 $r10:0x7f7f7f7f $r11:0x00000004
$r12:0xf01b401c $r13:0xdeadbeef $r14:0x00000001 $r15:0x2ff22b04
$r16:0x2ff22b0c $r17:0x00000000 $r18:0xdeadbeef $r19:0xdeadbeef
$r20:0xdeadbeef $r21:0xdeadbeef $r22:0xdeadbeef $r23:0xdeadbeef
$r24:0xdeadbeef $r25:0x00000001 $r26:0x2ff22b04 $r27:0x00000001
$r28:0x2008c488 $r29:0x00000001 $r30:0x2008c668 $r31:0x00008080
$iar:0x10004344 $msr:0x0002d0b2 $cr:0x24222224 $link:0x1001d2bc
$ctr:0x00000004 $xer:0x0000000f $mq:0xdeadbeef
Condition status = 0:e 1:g 2:e 3:e 4:e 5:e 6:e 7:g
[unset $noflregs to view floating point registers]
====
In smaller steps I come to this code:
stopped in new_serverstats at line 377 in file "modules/statserv/main.c"
377 {
(dbx) where
new_serverstats(servername = "Ascendent.tdzk"), line 377 in "main.c"
__dblocal_new_serverstats_stub(), line 189 in "extsyms.c"
load_one_serverstats(f = 0x2008c668), line 2312 in "version4.c"
open_statserv_db(dbname = "stats.db"), line 2377 in "version4.c"
init_module_statserv_main(module_ = ??), line 622 in "main.c"
internal_init_module(module = 0x2008c3a8), line 388 in "modules.c"
load_module(modulename = "statserv/main"), line 417 in "modules.c"
unnamed block $b64, line 848 in "init.c"
init.init(??, ??), line 848 in "init.c"
main.main(ac = ??, av = 0x2ff22b04, envp = 0x2ff22b0c), line 225 in "main.c"
(dbx) list 370, 390
370
371 /* Create a new ServerStats structure for the given server name
and return
372 * it. Always successful.
373 */
374
375 EXPORT_FUNC(new_serverstats)
376 ServerStats *new_serverstats(const char *servername)
377 {
378 ServerStats *ss;
379
380 ss = scalloc(sizeof(*ss), 1);
381 ss->name = sstrdup(servername);
382 return ss;
383 }
384
385
/*************************************************************************/
And then single stepping....
(watch for mr r31,r3 (that incorrectly loads the r31 (ss) value.
====
(dbx) stop at 383
[7] stop at "modules/statserv/main.c":383
(dbx) cont
[7] stopped in new_serverstats at line 383 in file "modules/statserv/main.c"
383 }
(dbx) dump
new_serverstats(servername = "Ascendent.tdzk"), line 383 in "main.c"
ss = 0x2008b658
(dbx) registers
$r0:0x2008b568 $stkp:0x2ff22648 $toc:0x2001508c $r3:0x2008b568
$r4:0x2008b0d4 $r5:0x2008b576 $r6:0x00000000 $r7:0x007a6b00
$r8:0x7a6b0000 $r9:0x00008080 $r10:0x7f7f7f7f $r11:0x00000004
$r12:0x00008080 $r13:0xdeadbeef $r14:0x00000001 $r15:0x2ff22b04
$r16:0x2ff22b0c $r17:0x00000000 $r18:0xdeadbeef $r19:0xdeadbeef
$r20:0xdeadbeef $r21:0xdeadbeef $r22:0xdeadbeef $r23:0xdeadbeef
$r24:0xdeadbeef $r25:0x00000001 $r26:0x2ff22b04 $r27:0x00000001
$r28:0x2008b0c8 $r29:0x2008b658 $r30:0x2008c668 $r31:0x2ff22698
$iar:0x1007eb28 $msr:0x0002d0b2 $cr:0x24222224 $link:0x1007eb1c
$ctr:0x00000004 $xer:0x0000000f $mq:0xdeadbeef
Condition status = 0:e 1:g 2:e 3:e 4:e 5:e 6:e 7:g
[unset $noflregs to view floating point registers]
in new_serverstats at line 383 in file "modules/statserv/main.c"
0x1007eb28 (new_serverstats+0x40) 7fa3eb78 mr r3,r29
(dbx) stepi
stopped in unnamed block $b916 at 0x1007eb2c
0x1007eb2c ($b916) 901d0010 stw r0,0x10(r29)
(dbx) stepi
stopped in unnamed block $b916 at 0x1007eb30
0x1007eb30 ($b916+0x4) 80010008 lwz r0,0x8(r1)
(dbx) stepi
stopped in unnamed block $b916 at 0x1007eb34
0x1007eb34 ($b916+0x8) 8381fff0 lwz r28,-16(r1)
(dbx) stepi
stopped in unnamed block $b916 at 0x1007eb38
0x1007eb38 ($b916+0xc) 7c0803a6 mtlr r0
(dbx) stepi
stopped in unnamed block $b916 at 0x1007eb3c
0x1007eb3c ($b916+0x10) 83a1fff4 lwz r29,-12(r1)
(dbx) stepi
stopped in unnamed block $b916 at 0x1007eb40
0x1007eb40 ($b916+0x14) 4e800020 blr
(dbx) stepi
stopped in __dblocal_new_serverstats_stub at 0x10020fb8
0x10020fb8 (__dblocal_new_serverstats_stub+0x11c)
80410014 lwz r2,0x14(r1)
(dbx) registers
$r0:0x10020fb8 $stkp:0x2ff22648 $toc:0x2001508c $r3:0x2008b658
$r4:0x2008b0d4 $r5:0x2008b576 $r6:0x00000000 $r7:0x007a6b00
$r8:0x7a6b0000 $r9:0x00008080 $r10:0x7f7f7f7f $r11:0x00000004
$r12:0x00008080 $r13:0xdeadbeef $r14:0x00000001 $r15:0x2ff22b04
$r16:0x2ff22b0c $r17:0x00000000 $r18:0xdeadbeef $r19:0xdeadbeef
$r20:0xdeadbeef $r21:0xdeadbeef $r22:0xdeadbeef $r23:0xdeadbeef
$r24:0xdeadbeef $r25:0x00000001 $r26:0x2ff22b04 $r27:0x00000001
$r28:0x20015008 $r29:0x20003e30 $r30:0x2008c668 $r31:0x2ff22698
$iar:0x10020fb8 $msr:0x0002d0b2 $cr:0x24222224 $link:0x10020fb8
$ctr:0x00000004 $xer:0x0000000f $mq:0xdeadbeef
Condition status = 0:e 1:g 2:e 3:e 4:e 5:e 6:e 7:g
[unset $noflregs to view floating point registers]
in __dblocal_new_serverstats_stub at 0x10020fb8
0x10020fb8 (__dblocal_new_serverstats_stub+0x11c)
80410014 lwz r2,0x14(r1)
(dbx) stepi
stopped in __dblocal_new_serverstats_stub at 0x10020fbc
0x10020fbc (__dblocal_new_serverstats_stub+0x120)
907f00c8 stw r3,0xc8(r31)
(dbx) registers
$r0:0x10020fb8 $stkp:0x2ff22648 $toc:0x2001508c $r3:0x2008b658
$r4:0x2008b0d4 $r5:0x2008b576 $r6:0x00000000 $r7:0x007a6b00
$r8:0x7a6b0000 $r9:0x00008080 $r10:0x7f7f7f7f $r11:0x00000004
$r12:0x00008080 $r13:0xdeadbeef $r14:0x00000001 $r15:0x2ff22b04
$r16:0x2ff22b0c $r17:0x00000000 $r18:0xdeadbeef $r19:0xdeadbeef
$r20:0xdeadbeef $r21:0xdeadbeef $r22:0xdeadbeef $r23:0xdeadbeef
$r24:0xdeadbeef $r25:0x00000001 $r26:0x2ff22b04 $r27:0x00000001
$r28:0x20015008 $r29:0x20003e30 $r30:0x2008c668 $r31:0x2ff22698
$iar:0x10020fbc $msr:0x0002d0b2 $cr:0x24222224 $link:0x10020fb8
$ctr:0x00000004 $xer:0x0000000f $mq:0xdeadbeef
Condition status = 0:e 1:g 2:e 3:e 4:e 5:e 6:e 7:g
[unset $noflregs to view floating point registers]
in __dblocal_new_serverstats_stub at 0x10020fbc
0x10020fbc (__dblocal_new_serverstats_stub+0x120)
907f00c8 stw r3,0xc8(r31)
(dbx) stepi
stopped in __dblocal_new_serverstats_stub at 0x10020fc0
0x10020fc0 (__dblocal_new_serverstats_stub+0x124)
909f00cc stw r4,0xcc(r31)
(dbx) registers
$r0:0x10020fb8 $stkp:0x2ff22648 $toc:0x2001508c $r3:0x2008b658
$r4:0x2008b0d4 $r5:0x2008b576 $r6:0x00000000 $r7:0x007a6b00
$r8:0x7a6b0000 $r9:0x00008080 $r10:0x7f7f7f7f $r11:0x00000004
$r12:0x00008080 $r13:0xdeadbeef $r14:0x00000001 $r15:0x2ff22b04
$r16:0x2ff22b0c $r17:0x00000000 $r18:0xdeadbeef $r19:0xdeadbeef
$r20:0xdeadbeef $r21:0xdeadbeef $r22:0xdeadbeef $r23:0xdeadbeef
$r24:0xdeadbeef $r25:0x00000001 $r26:0x2ff22b04 $r27:0x00000001
$r28:0x20015008 $r29:0x20003e30 $r30:0x2008c668 $r31:0x2ff22698
$iar:0x10020fc0 $msr:0x0002d0b2 $cr:0x24222224 $link:0x10020fb8
$ctr:0x00000004 $xer:0x0000000f $mq:0xdeadbeef
Condition status = 0:e 1:g 2:e 3:e 4:e 5:e 6:e 7:g
[unset $noflregs to view floating point registers]
in __dblocal_new_serverstats_stub at 0x10020fc0
0x10020fc0 (__dblocal_new_serverstats_stub+0x124)
909f00cc stw r4,0xcc(r31)
(dbx) stepi
stopped in __dblocal_new_serverstats_stub at 0x10020fc4
0x10020fc4 (__dblocal_new_serverstats_stub+0x128)
d83f00d0 stfd fr1,0xd0(r31)
(dbx) stepi
stopped in __dblocal_new_serverstats_stub at 0x10020fc8
0x10020fc8 (__dblocal_new_serverstats_stub+0x12c)
803f00dc lwz r1,0xdc(r31)
(dbx) stepi
stopped in __dblocal_new_serverstats_stub at 0x10020fcc
0x10020fcc (__dblocal_new_serverstats_stub+0x130)
801f00d8 lwz r0,0xd8(r31)
(dbx) stepi
stopped in __dblocal_new_serverstats_stub at 0x10020fd0
0x10020fd0 (__dblocal_new_serverstats_stub+0x134)
90010000 stw r0,0x0(r1)
(dbx) stepi
stopped in __dblocal_new_serverstats_stub at 0x10020fd4
0x10020fd4 (__dblocal_new_serverstats_stub+0x138)
80210000 lwz r1,0x0(r1)
(dbx) stepi
stopped in __dblocal_new_serverstats_stub at 0x10020fd8
0x10020fd8 (__dblocal_new_serverstats_stub+0x13c)
807f00c8 lwz r3,0xc8(r31)
(dbx) registers
$r0:0x2ff22788 $stkp:0x2ff22788 $toc:0x2001508c $r3:0x2008b658
$r4:0x2008b0d4 $r5:0x2008b576 $r6:0x00000000 $r7:0x007a6b00
$r8:0x7a6b0000 $r9:0x00008080 $r10:0x7f7f7f7f $r11:0x00000004
$r12:0x00008080 $r13:0xdeadbeef $r14:0x00000001 $r15:0x2ff22b04
$r16:0x2ff22b0c $r17:0x00000000 $r18:0xdeadbeef $r19:0xdeadbeef
$r20:0xdeadbeef $r21:0xdeadbeef $r22:0xdeadbeef $r23:0xdeadbeef
$r24:0xdeadbeef $r25:0x00000001 $r26:0x2ff22b04 $r27:0x00000001
$r28:0x20015008 $r29:0x20003e30 $r30:0x2008c668 $r31:0x2ff22698
$iar:0x10020fd8 $msr:0x0002d0b2 $cr:0x24222224 $link:0x10020fb8
$ctr:0x00000004 $xer:0x0000000f $mq:0xdeadbeef
Condition status = 0:e 1:g 2:e 3:e 4:e 5:e 6:e 7:g
[unset $noflregs to view floating point registers]
in __dblocal_new_serverstats_stub at 0x10020fd8
0x10020fd8 (__dblocal_new_serverstats_stub+0x13c)
807f00c8 lwz r3,0xc8(r31)
(dbx) stepi
stopped in __dblocal_new_serverstats_stub at 0x10020fdc
0x10020fdc (__dblocal_new_serverstats_stub+0x140)
809f00cc lwz r4,0xcc(r31)
(dbx) stepi
stopped in __dblocal_new_serverstats_stub at 0x10020fe0
0x10020fe0 (__dblocal_new_serverstats_stub+0x144) 7d234b78 mr r3,r9
(dbx) registers
$r0:0x2ff22788 $stkp:0x2ff22788 $toc:0x2001508c $r3:0x2008b658
$r4:0x2008b0d4 $r5:0x2008b576 $r6:0x00000000 $r7:0x007a6b00
$r8:0x7a6b0000 $r9:0x00008080 $r10:0x7f7f7f7f $r11:0x00000004
$r12:0x00008080 $r13:0xdeadbeef $r14:0x00000001 $r15:0x2ff22b04
$r16:0x2ff22b0c $r17:0x00000000 $r18:0xdeadbeef $r19:0xdeadbeef
$r20:0xdeadbeef $r21:0xdeadbeef $r22:0xdeadbeef $r23:0xdeadbeef
$r24:0xdeadbeef $r25:0x00000001 $r26:0x2ff22b04 $r27:0x00000001
$r28:0x20015008 $r29:0x20003e30 $r30:0x2008c668 $r31:0x2ff22698
$iar:0x10020fe0 $msr:0x0002d0b2 $cr:0x24222224 $link:0x10020fb8
$ctr:0x00000004 $xer:0x0000000f $mq:0xdeadbeef
Condition status = 0:e 1:g 2:e 3:e 4:e 5:e 6:e 7:g
[unset $noflregs to view floating point registers]
in __dblocal_new_serverstats_stub at 0x10020fe0
0x10020fe0 (__dblocal_new_serverstats_stub+0x144) 7d234b78 mr r3,r9
(dbx) stepi
stopped in __dblocal_new_serverstats_stub at 0x10020fe4
0x10020fe4 (__dblocal_new_serverstats_stub+0x148)
80010008 lwz r0,0x8(r1)
(dbx) registers
$r0:0x2ff22788 $stkp:0x2ff22788 $toc:0x2001508c $r3:0x00008080
$r4:0x2008b0d4 $r5:0x2008b576 $r6:0x00000000 $r7:0x007a6b00
$r8:0x7a6b0000 $r9:0x00008080 $r10:0x7f7f7f7f $r11:0x00000004
$r12:0x00008080 $r13:0xdeadbeef $r14:0x00000001 $r15:0x2ff22b04
$r16:0x2ff22b0c $r17:0x00000000 $r18:0xdeadbeef $r19:0xdeadbeef
$r20:0xdeadbeef $r21:0xdeadbeef $r22:0xdeadbeef $r23:0xdeadbeef
$r24:0xdeadbeef $r25:0x00000001 $r26:0x2ff22b04 $r27:0x00000001
$r28:0x20015008 $r29:0x20003e30 $r30:0x2008c668 $r31:0x2ff22698
$iar:0x10020fe4 $msr:0x0002d0b2 $cr:0x24222224 $link:0x10020fb8
$ctr:0x00000004 $xer:0x0000000f $mq:0xdeadbeef
Condition status = 0:e 1:g 2:e 3:e 4:e 5:e 6:e 7:g
[unset $noflregs to view floating point registers]
in __dblocal_new_serverstats_stub at 0x10020fe4
0x10020fe4 (__dblocal_new_serverstats_stub+0x148)
80010008 lwz r0,0x8(r1)
(dbx) stepi
stopped in __dblocal_new_serverstats_stub at 0x10020fe8
0x10020fe8 (__dblocal_new_serverstats_stub+0x14c)
c83f00d0 lfd fr1,0xd0(r31)
(dbx) stepi
stopped in __dblocal_new_serverstats_stub at 0x10020fec
0x10020fec (__dblocal_new_serverstats_stub+0x150) 7c0803a6 mtlr r0
(dbx) stepi
stopped in __dblocal_new_serverstats_stub at 0x10020ff0
0x10020ff0 (__dblocal_new_serverstats_stub+0x154)
8381fff0 lwz r28,-16(r1)
(dbx) stepi
stopped in __dblocal_new_serverstats_stub at 0x10020ff4
0x10020ff4 (__dblocal_new_serverstats_stub+0x158)
83a1fff4 lwz r29,-12(r1)
(dbx) stepi
stopped in __dblocal_new_serverstats_stub at 0x10020ff8
0x10020ff8 (__dblocal_new_serverstats_stub+0x15c)
83e1fffc lwz r31,-4(r1)
(dbx) stepi
stopped in __dblocal_new_serverstats_stub at 0x10020ffc
0x10020ffc (__dblocal_new_serverstats_stub+0x160) 4e800020 blr
(dbx) stepi
stopped in load_one_serverstats at 0x1001d2ac
0x1001d2ac (load_one_serverstats+0x54) 80410014 lwz r2,0x14(r1)
(dbx) registers
$r0:0x1001d2ac $stkp:0x2ff22788 $toc:0x2001508c $r3:0x00008080
$r4:0x2008b0d4 $r5:0x2008b576 $r6:0x00000000 $r7:0x007a6b00
$r8:0x7a6b0000 $r9:0x00008080 $r10:0x7f7f7f7f $r11:0x00000004
$r12:0x00008080 $r13:0xdeadbeef $r14:0x00000001 $r15:0x2ff22b04
$r16:0x2ff22b0c $r17:0x00000000 $r18:0xdeadbeef $r19:0xdeadbeef
$r20:0xdeadbeef $r21:0xdeadbeef $r22:0xdeadbeef $r23:0xdeadbeef
$r24:0xdeadbeef $r25:0x00000001 $r26:0x2ff22b04 $r27:0x00000001
$r28:0x2008c488 $r29:0x00000001 $r30:0x2008c668 $r31:0x00000000
$iar:0x1001d2ac $msr:0x0002d0b2 $cr:0x24222224 $link:0x1001d2ac
$ctr:0x00000004 $xer:0x0000000f $mq:0xdeadbeef
Condition status = 0:e 1:g 2:e 3:e 4:e 5:e 6:e 7:g
[unset $noflregs to view floating point registers]
in load_one_serverstats at 0x1001d2ac
0x1001d2ac (load_one_serverstats+0x54) 80410014 lwz r2,0x14(r1)
(dbx) stepi
stopped in load_one_serverstats at 0x1001d2b0
0x1001d2b0 (load_one_serverstats+0x58) 7c7f1b78 mr r31,r3
(dbx) stepi
stopped in load_one_serverstats at 0x1001d2b4
0x1001d2b4 (load_one_serverstats+0x5c) 80610038 lwz r3,0x38(r1)
(dbx) registers
$r0:0x1001d2ac $stkp:0x2ff22788 $toc:0x2001508c $r3:0x00008080
$r4:0x2008b0d4 $r5:0x2008b576 $r6:0x00000000 $r7:0x007a6b00
$r8:0x7a6b0000 $r9:0x00008080 $r10:0x7f7f7f7f $r11:0x00000004
$r12:0x00008080 $r13:0xdeadbeef $r14:0x00000001 $r15:0x2ff22b04
$r16:0x2ff22b0c $r17:0x00000000 $r18:0xdeadbeef $r19:0xdeadbeef
$r20:0xdeadbeef $r21:0xdeadbeef $r22:0xdeadbeef $r23:0xdeadbeef
$r24:0xdeadbeef $r25:0x00000001 $r26:0x2ff22b04 $r27:0x00000001
$r28:0x2008c488 $r29:0x00000001 $r30:0x2008c668 $r31:0x00008080
$iar:0x1001d2b4 $msr:0x0002d0b2 $cr:0x24222224 $link:0x1001d2ac
$ctr:0x00000004 $xer:0x0000000f $mq:0xdeadbeef
Condition status = 0:e 1:g 2:e 3:e 4:e 5:e 6:e 7:g
[unset $noflregs to view floating point registers]
in load_one_serverstats at 0x1001d2b4
0x1001d2b4 (load_one_serverstats+0x5c) 80610038 lwz r3,0x38(r1)
(dbx) stepi
stopped in load_one_serverstats at 0x1001d2b8
0x1001d2b8 (load_one_serverstats+0x60) 4bfe7089 bl 0x10004340
(free)
(dbx)
====
I am wondering what the constant 64 means in:
extsyms.c:
static void *__dblocal_##func##_stub(void) { \
__dblocal_##func##_stub0(); \
__builtin_return(__builtin_apply((void *)__dblocal_##func, \
__builtin_apply_args(), 64)); \
} \