I am now solving a bug in RHEL4 (https://bugzilla.redhat.com/show_bug.cgi?id=249668
I got to very strange behavior
while debugging it
in the "bytecode.c" file xemacs abort()s in the function execute_rare_opcode(),
because it somehow got another opcode
than the ones listed in the switch: inside the function execute_rare_opcode() the
"opcode" parameter seems to be 0,
however when I go one stack frame up, it shows that the REGISTER variable
"opcode", which should get passed to the function,
is 5590 and not 0, so the program should get to the "if" -push constant- and not
"else" -execute_rare_opcode()- part
see my attached gdb session for details: the core file is large,
I uploaded it to http://grafomanie.zapisnik.cz/xemacs-vi-mode-bugreport-with-core.zip
The comment in the "bytecode.c" file is, that it is heavily optimized, so maybe
this is an compiler/optimalization issue, but it
happens even with -O0, even tried the "-fno-caller-saves" switch
"PROBLEM" file mentions.
Maybe there is some other compiler switch wrong?
Or could there be race condition in the code perhaps?
I see the file is not touched for several years in the project, so it probably is correct
Maybe I take a wrong approach, can you help me, please?
Attached: "Installation" file from the build tree, "where" from gdb
and a txt file with my gdb session, showing the mysterious behavior
have a nice day,
XEmacs-Beta mailing list