Bug 342988 - INT 80 not recognised on amd64
Summary: INT 80 not recognised on amd64
Status: REPORTED
Alias: None
Product: valgrind
Classification: Developer tools
Component: general (show other bugs)
Version: unspecified
Platform: Arch Linux Linux
: NOR normal
Target Milestone: ---
Assignee: Julian Seward
URL:
Keywords:
: 454482 (view as bug list)
Depends on:
Blocks:
 
Reported: 2015-01-18 00:20 UTC by peb3978
Modified: 2022-05-27 16:00 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description peb3978 2015-01-18 00:20:54 UTC
Command: valgrind ./mcmd_prj
I just typed that command, then the program gave me this message:
vex amd64->IR: unhandled instruction bytes: 0xCD 0x80 0xC9 0xC3 0x55 0x48 0x89 0xE5
vex amd64->IR:   REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0
vex amd64->IR:   VEX=0 VEX.L=0 VEX.nVVVV=0x0 ESC=NONE
vex amd64->IR:   PFX.66=0 PFX.F2=0 PFX.F3=0
==8837== valgrind: Unrecognised instruction at address 0x41ff6e.
==8837==    at 0x41FF6E: ??? (in /root/Documents/mcmd_prj/mcmd_prj)
==8837==    by 0x434855: main (in /root/Documents/mcmd_prj/mcmd_prj)
==8837== Your program just tried to execute an instruction that Valgrind
==8837== did not recognise.  There are two possible reasons for this.
==8837== 1. Your program has a bug and erroneously jumped to a non-code
==8837==    location.  If you are running Memcheck and you just saw a
==8837==    warning about a bad jump, it's probably your program's fault.
==8837== 2. The instruction is legitimate but Valgrind doesn't handle it,
==8837==    i.e. it's Valgrind's fault.  If you think this is the case or
==8837==    you are not sure, please let us know and we'll try to fix it.
==8837== Either way, Valgrind will now raise a SIGILL signal which will
==8837== probably kill your program.

0xCD 0x80-> I think this instruction caused problem.
As you know, 0xCD is kernel interrupt. 
My software contains some assembly instructions, and need to know if there is any memory leaks.
May you fix, or add the instruction?
Comment 1 Tom Hughes 2015-01-18 00:35:15 UTC
You're using INT 0x80 to do system calls in 64 bit mode? That's a bit odd... To be honest I didn't even realise the kernel supported it given than the newer syscall/sysenter instructions existed by then.
Comment 2 Tom Hughes 2022-05-27 16:00:36 UTC
*** Bug 454482 has been marked as a duplicate of this bug. ***