Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1852866

Summary: valgrind doesn't recognize JMP rel32 with VEX prefix
Product: Red Hat Developer Toolset Reporter: Mark Wielaard <mjw>
Component: valgrindAssignee: Mark Wielaard <mjw>
Status: CLOSED ERRATA QA Contact: Alexandra Petlanová Hájková <ahajkova>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: DTS 10.0 RHEL 7CC: ahajkova, dsmith, jakub, jvanek, mcermak, mnewsome, ohudlick, tdeseyn
Target Milestone: beta1   
Target Release: 10.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: devtoolset-10-valgrind-3.16.1-3 Doc Type: No Doc Update
Doc Text:
Story Points: ---
Clone Of:
: 1875331 (view as bug list) Environment:
Last Closed: 2020-12-01 12:10:32 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1875331, 1879761    

Description Mark Wielaard 2020-07-01 13:41:14 UTC
This is necessary for running .net core programs under valgrind which generates a VEX prefixxed JMP rel32 instruction. A prelimenary patch (not accepted upstream yet) is in the valgrind bugzilla: https://bugs.kde.org/show_bug.cgi?id=422174

Note that even with this fix, .net core applications are valgrind "clean", but without this fix .net core just crashes under valgrind.

Comment 2 Mark Wielaard 2020-07-03 17:05:21 UTC
This is just to get dotnet to start up.
Using dotnet from dotnet-sdk-3.1 rpm.

Before the fix:
$ valgrind -q dotnet --version

Will crash with:

vex amd64->IR: unhandled instruction bytes: 0x48 0xE9 0x70 0xB3 0x41 0xA9 0x49 0xBA 0x88 0xCD
vex amd64->IR:   REX=1 REX.W=1 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

After the fix:
$ valgrind -q dotnet --version 2>/dev/null
3.1.103

There will still be warnings about Conditional jump or move depends on uninitialised value(s) and syscalls that use bad params.

Comment 8 errata-xmlrpc 2020-12-01 12:10:32 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (new packages: devtoolset-10-valgrind), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHEA-2020:5287