You didn't step over &quot;intdist = (int) dist;&quot; yet.&nbsp; intdist is uninitialized, and that is why the values are different on the two systems.<br><br>-Chad<br><br><br><div><span class="gmail_quote">On 11/4/05, <b class="gmail_sendername">
<a href="mailto:vincent@cojot.name">vincent@cojot.name</a></b> &lt;<a href="mailto:vincent@cojot.name">vincent@cojot.name</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>I'm trying to find the source of the botlib segfaults on Solaris/Sparc.<br><br>I'm running the dedicated server with:<br><br>gdb&gt; ....3ded<br>gdb&gt; b AAS_AreaTravelTime<br>gdb&gt; r +set vm_game 1 +set vm_cgame 1 +set vm_ui 1 +set sv_pure 1 +set ttycon 0 +map q3dm17
<br><br>On Linux/i386/RHEL3, I get this run:<br><br>------------ Map Loading ------------<br>trying to load maps/q3dm17.aas<br>loaded maps/q3dm17.aas<br>found 29 level items<br>-------------------------------------<br>32 bots parsed
<br>35 arenas parsed<br><br>Breakpoint 1, AAS_AreaTravelTime (areanum=4, start=0xbfff8bc0,<br>end=0xb622b69c)<br>&nbsp;&nbsp;&nbsp;&nbsp; at ../botlib/be_aas_route.c:480<br>480&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VectorSubtract(start, end, dir);<br>(gdb) n<br>481&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dist = VectorLength(dir);
<br>(gdb) n<br>483&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (AAS_AreaCrouch(areanum)) dist *=<br>DISTANCEFACTOR_CROUCH;<br>(gdb) n<br>485&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else if (AAS_AreaSwim(areanum)) dist *=<br>DISTANCEFACTOR_SWIM;<br>(gdb) n<br>487&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else dist *= DISTANCEFACTOR_WALK;
<br>(gdb) n<br>489&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; intdist = (int) dist;<br>(gdb) print dir<br>$6 = {0, 5.1000061, 0.125}<br>(gdb) print dist<br>$7 = 1.68350756<br>(gdb) print intdist<br>$8 = 0<br><br>On Solaris/Sparc, I get this run:<br>------------ Map Loading ------------
<br>trying to load maps/q3dm17.aas<br>loaded maps/q3dm17.aas<br>found 29 level items<br>-------------------------------------<br>32 bots parsed<br>35 arenas parsed<br><br>Breakpoint 1, AAS_AreaTravelTime (areanum=4, start=0xffbf9d28,
<br>end=0x496b1bc) at ../botlib/be_aas_route.c:480<br>480&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VectorSubtract(start, end, dir);<br>(gdb) n<br>481&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dist = VectorLength(dir);<br>(gdb) n<br>483&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (AAS_AreaCrouch(areanum)) dist *=
<br>DISTANCEFACTOR_CROUCH;<br>(gdb) n<br>485&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else if (AAS_AreaSwim(areanum)) dist *=<br>DISTANCEFACTOR_SWIM;<br>(gdb) n<br>487&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else dist *= DISTANCEFACTOR_WALK;<br>(gdb) n<br>489&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; intdist = (int) dist;
<br>(gdb) print dir<br>$5 = {0, 5.1000061, 0.125}<br>(gdb) print dist<br>$6 = 1.68350756<br>(gdb) print intdist<br>$7 = 4543008<br><br>I cannot understand why intdist would be so different in both cases.. I<br>cannot understand either why it isn't being cast as 'unsigned short' since
<br>that's what AAS_AreaTravelTime should return..<br><br>Eventually, this results in segfaults on Solaris/Sparc..<br><br>Program received signal SIGSEGV, Segmentation fault.<br>0x000a4a24 in AAS_CalculateAreaTravelTimes () at
<br>../botlib/be_aas_route.c:543<br>543&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; aasworld.areatraveltimes[i][l] = (unsigned short *) ptr;<br><br>I can override that segfault by using playing with LittleShort but then it<br>dies on line 522 on be_aas_route.c...
<br><br>*Sigh*<br><br>Vincent<br></blockquote></div><br><br clear="all"><br>-- <br>Chad Gatesman<br>Software Engineer