-
Notifications
You must be signed in to change notification settings - Fork 564
[Xamarin.Android.Build.Tasks] Fix an issue where library projects can not be debugged. #646
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
Merged
+65
−0
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Member
|
I wonder what is the performance penalty of this change. Could you please try if not reading the symbols (as before) and adding following change would fix it? It might help to keep the performance nearly the same. index b69dd41..61dbcd0 100644
--- a/src/Xamarin.Android.Build.Tasks/Linker/MonoDroid.Tuner/FixAbstractMethodsStep.cs
+++ b/src/Xamarin.Android.Build.Tasks/Linker/MonoDroid.Tuner/FixAbstractMethodsStep.cs
@@ -28,6 +28,7 @@ namespace MonoDroid.Tuner
}
if (changed) {
+ Context.SafeReadSymbols (assembly);
AssemblyAction action = Annotations.HasAction (assembly) ? Annotations.GetAction (assembly) : AssemblyAction.Skip;
if (action == AssemblyAction.Skip || action == AssemblyAction.Copy || action == AssemblyAction.Delete)
Annotations.SetAction (assembly, AssemblyAction.Save); |
Contributor
Author
|
@radekdoulik ok I'll give that a go |
…not be debugged. The linker was not producing ppdb files. What is supposed to happen is the linker if it changes a dll should emit a new pdb file along with it. Because none of the assemblies were being loaded with debug symbols. Hence no updated pdb. So this commit loads the Symbols as part of the linker process to ensure that we are able to emit the new pdb when required. This is only done for files which have been changed by the linker.
4540aa4 to
194d6d1
Compare
Contributor
Author
|
@radekdoulik your suggestion seemed to work. Well my new unit test still passed so it was doing the same thing |
Member
|
That's great, thanks! |
jonpryor
pushed a commit
that referenced
this pull request
May 20, 2020
Context: dotnet/java-interop@b00e644 Changes: dotnet/java-interop@186174c...b00e644 * dotnet/java-interop@b00e644: [Java.Interop.Tools.Generator] Create a v2 version of map.csv (#646) * dotnet/java-interop@1708d8a: [XAT.Bytecode] Bind Kotlin internal interfaces as package-private (#645) In dotnet/java-interop@b00e644e, we added support for a "v2" version of the `map.csv` file format used to bundle Java constant fields into enumerations. Convert `src/Mono.Android/map.csv` to use this new format to make enumification easier going forward. This does not add any new enumifications. Additionally, the new enum code standardizes on using `$` to denote nested classes, e.g. `java/lang/Thread$State`, not `java/lang/Thread.State`. `$` is correct JNI syntax or nested types. ~Half of this existing file used `$` and half used `.`. This resulted in needing `acceptable-breakage` fixes as this signature changed in the `[IntDefinition]` attribute.
jonpryor
pushed a commit
that referenced
this pull request
May 26, 2020
Context: dotnet/java-interop@b00e644 Changes: dotnet/java-interop@d6024f1...76d1ac7 * dotnet/java-interop@76d1ac7: [Java.Interop.Tools.Generator] Create a v2 version of map.csv (#646) * dotnet/java-interop@b6c15399: [XAT.Bytecode] Bind Kotlin internal interfaces as package-private (#645) In dotnet/java-interop@b00e644e, we added support for a "v2" version of the `map.csv` file format used to bundle Java constant fields into enumerations. Convert `src/Mono.Android/map.csv` to use this new format to make enumification easier going forward. This does not add any new enumifications. Additionally, the new enum code standardizes on using `$` to denote nested classes, e.g. `java/lang/Thread$State`, not `java/lang/Thread.State`. `$` is correct JNI syntax or nested types. ~Half of this existing file used `$` and half used `.`. This resulted in needing `acceptable-breakage` fixes as this signature changed in the `[IntDefinition]` attribute.
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The linker was not producing ppdb files.
What is supposed to happen is the
linker if it changes a dll should emit a new pdb file
along with it. Because none of the assemblies were being
loaded with debug symbols. Hence no updated pdb.
So this commit loads the Symbols as part of the
linker process to ensure that we are able to emit the new
pdb when required. This is only done for files which
have been changed by the linker.