| Summary: | Unrecognized amd64 instruction wrgsbase | ||
|---|---|---|---|
| Product: | [Developer tools] valgrind | Reporter: | camille.brugel |
| Component: | memcheck | Assignee: | Julian Seward <jseward> |
| Status: | REPORTED --- | ||
| Severity: | normal | CC: | pjfloyd |
| Priority: | NOR | ||
| Version First Reported In: | 3.22.0 | ||
| Target Milestone: | --- | ||
| Platform: | Ubuntu | ||
| OS: | Microsoft Windows | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
| Attachments: | Wasm module to reproduce the error | ||
|
Description
camille.brugel
2024-02-23 20:23:26 UTC
I forgot you have to do tup init before calling make. You can also simply do tup init && tup. And you can use github's codespace if you don't want to install or download anything although their atom cores are slow to compile. I don't think that any of the Valgrind developers use stuff like wasm or containers. And as a rule you will get better results either on bare metal or using full virtualization VM (vmware, virtualbox etc). Do you know what this environment is using GS for? As a rule on amd64 Valgrind makes very little use of the segment registers - they are almost never needed for running compiled C and C++ code on bare metal OSes. I am on holidays without access to a computer this week (writing it on my phone). About the use of the GS register the wamr jit (ab)use it for the loads and stores into the wasm linear memory: https://github.com/bytecodealliance/wasm-micro-runtime/blob/169e1648156d008825831fb00d5e3acbe021b480/product-mini/platforms/posix/main.c#L65 Note that I fixed the latest docker image disabling the use of this register in the libvmcore so you won't have the issue with the latest code. It seems a patch exists for valgrind to support the fsgsbase instructions: https://davejingtian.org/2018/07/07/hacking-valgrind/ |