[debugger] Enable reading embedded ppdb#18895
Conversation
…lot. To fix the issue of enabling embedded pdb everywhere the problem was that when the roslyn tests are compiling sources it creates embedded pdb with source file "", and before enable reading the embedded pdb we don't read this information, and now we read and our StackTrace file written in our corlib doesn't expect a source file "", it's okay if it's NULL but not "". I could fix in corlib or in mono, I prefer to fix on mono because I don't know if there is any other place that doesn't expect source file "".
mcs/build/config-default.make
Outdated
|
|
||
| TEST_HARNESS = $(topdir)/class/lib/$(PROFILE_DIRECTORY)/$(PARENT_PROFILE)nunit-lite-console.exe | ||
| PLATFORM_DEBUG_FLAGS = /debug:portable | ||
| PLATFORM_DEBUG_FLAGS = /debug:embedded |
There was a problem hiding this comment.
Be sure to test both/all, not delete one test to add another.
There was a problem hiding this comment.
Also, can these settings be combined -- portable and embedded?
There was a problem hiding this comment.
Ah, embedded implies portable.
There was a problem hiding this comment.
I removed this change, I will do this in another PR.
|
|
||
| $(test_output_dir)/dtest-excfilter.exe: Test/dtest-excfilter.il | $(test_output_dir) | ||
| $(ILASM) -out:$@ /exe /debug Test/dtest-excfilter.il | ||
| $(ILASM) -out:$@ /exe /debug:embedded Test/dtest-excfilter.il |
There was a problem hiding this comment.
Be sure to test both/all, not delete one test to add another.
There was a problem hiding this comment.
I removed this change, I will do this in another PR.
mono/metadata/debug-mono-ppdb.c
Outdated
|
|
||
| // Temporarily disabled to unblock Roslyn | ||
| #if HOST_WIN32 || HOST_WASM | ||
| #if HOST_WIN32 || HAVE_SYS_ZLIB |
There was a problem hiding this comment.
Are embedded pdbs always compressed?
There was a problem hiding this comment.
Don't you also need the HOST_WASM here? I thought wasm doesn't have a system zlib?
Changing the way to test strlen because of performance
|
@monojenkins build failed |
mono/metadata/debug-mono-ppdb.c
Outdated
|
|
||
| location = g_new0 (MonoDebugSourceLocation, 1); | ||
| location->source_file = docname; | ||
| if (docname != NULL && docname[0] != 0) |
There was a problem hiding this comment.
cosmetic: if (docname && docname [0])
There was a problem hiding this comment.
or if (!docname || docname [0])
because replacing null with null is an identity, but maybe that is too subtle.
|
@monojenkins build Linux AArch64 |
CoffeeFlux
left a comment
There was a problem hiding this comment.
Thanks for sorting this out. Figured it would be something silly I missed :(
Might still be worth bringing up with the Roslyn team to see if that's intended behavior? This fix should go in regardless though, given it works in CoreCLR.
mono/metadata/debug-mono-ppdb.c
Outdated
|
|
||
| // Temporarily disabled to unblock Roslyn | ||
| #if HOST_WIN32 || HOST_WASM | ||
| #if HOST_WIN32 || HAVE_SYS_ZLIB |
There was a problem hiding this comment.
Don't you also need the HOST_WASM here? I thought wasm doesn't have a system zlib?
|
This is related to #17209 |
|
@monojenkins build failed |
|
@monojenkins build Linux ARMv5 |
|
Is this getting backported to any current release? |
|
@monojenkins backport 2020-02 |
|
@thaystg backporting to 2020-02 failed, the patch results in conflicts: Please backport manually! |
To fix the issue of enable reading embedded pdb everywhere the problem was that when the roslyn tests are compiling sources it creates embedded pdb with source file "", and before enable reading the embedded pdb we don't read this information, and now we read and our StackTrace corlib doesn't expect a source file "", it's okay if it's NULL but not "".
I could fix in corlib or in mono, I prefer to fix on mono because I don't know if there is any other place in corlib that doesn't expect source file "".