[Ohrrpgce] SVN: james/4996 Fix bug 936. "change npc id" has been mostly broken since revision 4832
Ralph Versteegen
teeemcee at gmail.com
Thu Feb 2 08:06:18 PST 2012
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.
More information about the Ohrrpgce
mailing list