You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The native runtime by default builds with function inlining enabled,
making heavy use of the feature in order to generate faster code.
However, when debugging a native crash inlining causes stack traces to
point to unlikely locations, reporting the outer function as the crash
location instead of the inlined function where crash actually happened.
In order to make such debugging easier, do one of the following:
* Export the `XA_NO_INLINE` environment variable to "true-ish"
export XA_NO_INLINE=1
* Set the `$(DoNotInlineMonodroid)` MSBuild property to true,
either by adding to `Configuration.Override.props`:
<DoNotInlineMonodroid>true</DoNotInlineMonodroid>>
or by specifying on the command-line:
./dotnet-local.sh build Xamarin.Android.sln -p:DoNotInlineMonodroid=true …
This will force all normally inlined functions to be strictly
preserved and kept separate. The generated code will be slower, but
crash stack traces should be much more precise.
Additionally, `strip`ing of the native shared runtime can be disabled,
making it easier to get full debug symbols. This can similarly be
enabled by doing one of the following:
* Export the `XA_NO_STRIP` environment variable to "true-ish"
export XA_NO_STRIP=1
* Set the `$(DoNotStripMonodroid)` MSBuild property to true,
either by adding to `Configuration.Override.props`:
<DoNotStripMonodroid>true</DoNotStripMonodroid>>
or by specifying on the command-line:
./dotnet-local.sh build Xamarin.Android.sln -p:DoNotStripMonodroid=true …
In a Debug configuration build of xamarin-android,
`libmono-android*.so` will *not* be `strip`d by `src/monodroid`.
0 commit comments