[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));                      \
}                                                                       \