Skip to content
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

dwarf2reader::ByteReader::SetAddressSize(uint8) Assertion #9

Open
hhyyrylainen opened this issue Jan 24, 2022 · 5 comments
Open

dwarf2reader::ByteReader::SetAddressSize(uint8) Assertion #9

hhyyrylainen opened this issue Jan 24, 2022 · 5 comments

Comments

@hhyyrylainen
Copy link
Contributor

I get symbol extraction failure with the following output:

/home/hhyyrylainen/Projects/ThriveStoreScripts/builds/godot-normal/out/windows/x64/templates-mono/godot.windows.opt.64.mono.exe: in compilation unit '../crt/crtexe.c' (offset 0x0):
/home/hhyyrylainen/Projects/ThriveStoreScripts/builds/godot-normal/out/windows/x64/templates-mono/godot.windows.opt.64.mono.exe: warning: failed to demangle memcpy
dump_syms: src/common/dwarf/bytereader.cc:58: void dwarf2reader::ByteReader::SetAddressSize(uint8): Assertion `size == 4 || size == 8' failed.

I think this is related to me updating the mingw version I was compiling with (I needed to swap a podman image from Fedora 34 to 35 to get new nuget compatible certs).

Looking at the commit history this seems to be quite a lot behind the official breakpad repo. Perhaps getting fresh code in here would restore compatibility with newer mingw compiled executables?

@hhyyrylainen
Copy link
Contributor Author

I just ran a build with the same source code (mostly, I tested compiling Godot engine with a newer mono version), but using Fedora 34 based podman image instead, and this time the symbol extraction succeeded, so I think there's definitely something going on related to a newer compiler version here.

@slipher
Copy link
Member

slipher commented Jan 24, 2022

Is there like C# code in the same executable with the crash client? Maybe that confuses it somehow.

Also if you had to turn on debug mode to get the assertions, probably no one from Unvanquished has tried building in debug mode recently.

@hhyyrylainen
Copy link
Contributor Author

If there is any C# included in the executable, it should be the exact same code. Or at least mostly because I needed to use a newer mono version to compile (godotengine/build-containers#101).

What do you mean by "if you had to turn on debug mode"? I didn't specify any special build type when compiling breakpad, and the executable I'm trying to extract from is compiled in release mode.

@slipher
Copy link
Member

slipher commented Jan 24, 2022

OK, the makefile just doesn't define NDEBUG so that's not it.

What version of mingw do you have?

@hhyyrylainen
Copy link
Contributor Author

Whichever Fedora 34 has vs what Fedora 35 has. I use the docker image files from https://github.com/godotengine/build-containers/

According to rpmfind, Fedora 34 has mingw64-gcc-10.3.1-2 and 35 has upgraded to to mingw64-gcc-11.2.1-3
https://rpmfind.net/linux/rpm2html/search.php?query=mingw64-gcc

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants