|
From: Gao, J. <JG...@se...> - 2003-10-13 21:40:59
|
Maybe it does have illegal instruction. Either the executable is corrupted on disk, or the code is corrupted during execution. I would watch the memory where the instruction locates and find out who overwrite the code. -----Original Message----- From: Geert Fannes [mailto:gee...@es...] Sent: Monday, October 13, 2003 5:23 PM To: val...@li... Subject: [Valgrind-users] unhandled instruction bytes: 0xE0 0x6E 0x40 0x80 hello, i have a C++ program that exits with the message "Illegal instruction". when i let valgrind do its work, it says: disInstr: unhandled instruction bytes: 0xE0 0x6E 0x40 0x80 Illegal instruction any idea where i have to start searching? thnx, geert. ps:i use slackware 9.1, gcc 3.2.3 and gtk+ 2.0. ------------------------------------------------------- This SF.net email is sponsored by: SF.net Giveback Program. SourceForge.net hosts over 70,000 Open Source Projects. See the people who have HELPED US provide better services: Click here: http://sourceforge.net/supporters.php _______________________________________________ Valgrind-users mailing list Val...@li... https://lists.sourceforge.net/lists/listinfo/valgrind-users This message (including any attachments) contains confidential information intended for a specific individual and purpose, and is protected by law. If you are not the intended recipient, you should delete this message. Any disclosure, copying, or distribution of this message, or the taking of any action based on it, is strictly prohibited. |
|
From: Pavel R. <pr...@gn...> - 2003-10-13 22:19:39
|
On Mon, 13 Oct 2003, Gao, Jiafu wrote:
> Maybe it does have illegal instruction. Either the executable is corrupted
> on disk, or the code is corrupted during execution.
>
> I would watch the memory where the instruction locates and find out who
> overwrite the code.
Why not just disassemble this sequence? It's clearly valid, just a very
rare instruction. But gdb knows it.
$ cat >test.c <<EOF
> char instr[] = {0xE0, 0x6E, 0x40, 0x80};
> int main(){}
> EOF
$ gcc -o test test.c
$ gdb --quiet test
(gdb) disassemble &instr
Dump of assembler code for function instr:
0x080493c4 <instr+0>: loopne 0x8049434 <_DYNAMIC+108>
0x080493c6 <instr+2>: inc %eax
0x080493c7 <instr+3>: addb $0x0,(%ecx)
End of assembler dump.
(gdb)
--
Regards,
Pavel Roskin
|