-
Notifications
You must be signed in to change notification settings - Fork 262
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
drmemory 2.6.19984/cronbuild on Win10/Workstation on IBM 7945/XEON crashes with ASSERT FAILURE #2514
Comments
The ASSERT which gets triggered is https://github.com/DynamoRIO/dynamorio/blob/7f7544b6f593dcdbb2213fca3922055092b35af1/ext/drx/scatter_gather_x86.c#L122 - it seems it wants to use AVX on a machine which has no AVX. @derekbruening Is AVX now mandatory for DrMemory on Windows 10/64bit AMD64 ? |
The default builds are whatever the compiler defaults are on the Github Actions VMs: which are generally as old as Github supports (VS2019, Ubuntu20); I don't think it's reasonable to ask the small set of existing maintainers to support more than that as maintaining the existing multiple platforms is challenging enough. This is an open-source project so you could certainly do a custom build with flags telling the compiler not to use AVX. You could submit a pull request adding CMake options for that and a regression test. |
Just my 0,03 francs:
|
It sounds like you know how to fix it and could send a pull request? If the compilers are not emitting AVX then it should indeed work. Looking at that drx code: looks like an oversight with no deliberate intention; looks like it has just This would affect any DynamoRIO tool using the drx library, so I would suggest filing a companion bug in the DynamoRIO tracker. It is best for you to file it to A) show this is a real issue hit in the real world; B) make it easier for you to confirm it solves issues on your machines; C) you will get updates to that issue. The most important and maybe most difficult part is: how to add a regression test to prevent accidental breakage of non-AVX in the future? Ideally it would be run on a machine that actually has no AVX: a donated self-hosted Github Actions runner from someone with one of these machines? Just a build and running a couple of tests would be enough. Halfway solutions would be flags to pretend cpuid returns no AVX (only tests certain paths); run DR under itself to look for AVX opcodes (a la drcpusim; but again only tests certain aspects such as compiler emitting AVX, though it can also fake cpuid). |
I have not tested it on a non-AVX machine, but that code in question looks like it will run just fine in release build: so this is a DR-debug-build-only issue, is that right? That may explain why no one else has hit it. That also means there is a workaround when using DR debug build: |
The use of
Yes it does look like that. |
Describe the bug
drmemory crashes with the following assertion:
---- snip ----
---- snip ----
To Reproduce
Steps to reproduce the behavior:
Expected behaviour
drmemory works
** Actual behaviour:
Crash
Versions
Microsoft Windows [Version 10.0.19045.4894]
$ drmemory -version
Dr. Memory version 2.6.19984 -- build 0
https://drmemory.org/page_download.html#sec_latest_build solve the problem?
No
64bit
The text was updated successfully, but these errors were encountered: