[Ohrrpgce] SVN: james/4996 Fix bug 936. "change npc id" has been mostly broken since revision 4832

James Paige Bob at HamsterRepublic.com
Thu Feb 2 08:12:57 PST 2012


On Fri, Feb 03, 2012 at 05:06:18AM +1300, Ralph Versteegen wrote:
> On 30 January 2012 13:00, Ralph Versteegen <teeemcee at gmail.com> wrote:
> > On 30 January 2012 12:56, Ralph Versteegen <teeemcee at gmail.com> wrote:
> >> On 30 January 2012 12:25, James Paige <Bob at hamsterrepublic.com> wrote:
> >>> On Sun, Jan 29, 2012 at 03:22:52PM -0800, subversion at HamsterRepublic.com wrote:
> >>>> james
> >>>> 2012-01-29 15:22:52 -0800 (Sun, 29 Jan 2012)
> >>>> 233
> >>>> Fix bug 936. "change npc id" has been mostly broken since revision 4832
> >>>> visnpc was not reloading NPC sprites, which it is supposed to do after a "change npc id" command.
> >>>>
> >>>> I also added "change npc id" and "get npc id" to autotest.hss
> >>>
> >>> I was able to observe the fix by watching autotest.rpg at normal speed,
> >>> however, the autotest.py tool seems to e broken for me. It looks to me
> >>> as if it finishes the first pass, but then it crashes with the somewhat
> >>> baffling stack trace:
> >>>
> >>> Program exited normally.
> >>> No crash here
> >>> Traceback (most recent call last):
> >>>  File "./autotest.py", line 347, in <module>
> >>>    tester.run_tests()
> >>>  File "./autotest.py", line 189, in run_tests
> >>>    self.test_rpg(rpg)
> >>>  File "./autotest.py", line 217, in test_rpg
> >>>    self.run_rpg(rpg, olddir)
> >>>  File "./autotest.py", line 289, in run_rpg
> >>>    run_command(cmd, 1)
> >>>  File "./autotest.py", line 36, in run_command
> >>>    raise ExecError(exitcode, "subprocess.Popen().communicate() returned
> >>> stderr:\n%s" % (com[1]))
> >>> __main__.ExecError: subprocess.Popen().communicate() returned stderr:
> >>> Function "abort" not defined.
> >>>
> >>>
> >>> The last line is what confuses me. What does 'Function "abort" not
> >>> defined.' mean? I can't see which code is trying to call "abort"
> >>>
> >>> ---
> >>> James
> >>
> >> You normally see this kind of backtrace when the error occurred inside
> >> an extension module written in C. subprocess is probably such a
> >> module. It appears that it tried to lookup the name 'abort' in some
> >> context, couldn't find it, and printed that error. But what baffles me
> >> is why it didn't find 'abort'
> >
> > Wait a minute, I completely misread the stacktrace. It's stating the
> > contents of stderr. That output is from ./gdbgame.sh. It's causesd by
> > line 3 in gdbcmds1.txt: abort is not defined. But gdbgame.sh has been
> > printing that message under Linux for *years*!
> 
> I´ve just discovered that gdbgame.bat and gdbcustom.bat (on Windows)
> now always print a stack trace when quitting. It seems that at least
> on this computer, 'abort' and 'exit' have the same address, being
> aliases for "__static_initialization_and_destruction_0". I would guess
> that this change happened when we started linking to the C+ runtime,
> and that's the cause of the autotest.py program too.

Ah, okay, that makes sense.

---
James



More information about the Ohrrpgce mailing list