summaryrefslogtreecommitdiff
path: root/Documentation
diff options
context:
space:
mode:
authorGünther Foidl <gue@korporal.at>2018-03-21 01:56:41 +0100
committerAndy Ayers <andya@microsoft.com>2018-03-20 17:56:41 -0700
commita3468372f80e9b8056f668b43a07f8b28de4e10c (patch)
treeaeca3cbdd73cf6e8fb597bad7e3a302852eb305e /Documentation
parent0ebc0979a899d2e9da0643e3b5601618bcc3c4eb (diff)
downloadcoreclr-a3468372f80e9b8056f668b43a07f8b28de4e10c.tar.gz
coreclr-a3468372f80e9b8056f668b43a07f8b28de4e10c.tar.bz2
coreclr-a3468372f80e9b8056f668b43a07f8b28de4e10c.zip
Updated steps in 'Viewing JIT Dumps' to see optimized code (#17077)
If one follows the current described steps, one won't see the JIT dump for optimized code in the core lib. This PR adds the necessary step to see optimized code. Cf. https://github.com/dotnet/coreclr/issues/17065#issuecomment-374772011
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/building/viewing-jit-dumps.md11
1 files changed, 7 insertions, 4 deletions
diff --git a/Documentation/building/viewing-jit-dumps.md b/Documentation/building/viewing-jit-dumps.md
index b16b43197f..58dd2257fe 100644
--- a/Documentation/building/viewing-jit-dumps.md
+++ b/Documentation/building/viewing-jit-dumps.md
@@ -8,8 +8,9 @@ To make sense of the results, it is recommended you also read the [Reading a Jit
The first thing we want to do is setup the .NET Core app we want to dump. Here are the steps to do this, if you don't have one ready:
-* Perform a debug build of the CoreCLR repo. You don't need to build tests, so you can pass `skiptests` to the build command to make it faster.
-* Install the [.NET CLI 2.0 preview](https://github.com/dotnet/corefx/blob/master/Documentation/project-docs/dogfooding.md), which we'll use to compile/publish our app.
+* Perform a release build of the CoreCLR repo by passing `release` to the build command. You don't need to build tests, so you can pass `skiptests` to the build command to make it faster. Note: the release build can be skipped, but in order to see optimized in the core library it is needed.
+* Perform a debug build of the CoreCLR repo. Tests aren't needed as in the release build, so you can pass `skiptests` to the build command. Note: the debug build is necessary, so that the JIT recognizes the configuration knobs.
+* Install the [.NET CLI 2.1 preview](https://github.com/dotnet/corefx/blob/master/Documentation/project-docs/dogfooding.md), which we'll use to compile/publish our app.
* `cd` to where you want your app to be placed, and run `dotnet new console`.
* Modify your `csproj` file so that it contains a RID (runtime ID) corresponding to the OS you're using in the `<RuntimeIdentifier>` tag. For example, for Windows 10 x64 machine, the project file is:
@@ -61,10 +62,12 @@ The first thing we want to do is setup the .NET Core app we want to dump. Here a
```shell
# Windows
- robocopy /e <coreclr path>\bin\Product\Windows_NT.<arch>.Debug <app root>\bin\Release\netcoreapp2.0\<rid>\publish > NUL
+ robocopy /e <coreclr path>\bin\Product\Windows_NT.<arch>.Release <app root>\bin\Release\netcoreapp2.0\<rid>\publish > NUL
+ copy <coreclr path>\bin\Product\Windows_NT.<arch>.Debug\clrjit.dll <app root>\bin\Release\netcoreapp2.0\<rid>\publish > NUL
# Unix
- cp -rT <coreclr path>/bin/Product/<OS>.<arch>.Debug <app root>/bin/Release/netcoreapp2.0/<rid>/publish
+ cp -rT <coreclr path>/bin/Product/<OS>.<arch>.Release <app root>/bin/Release/netcoreapp2.0/<rid>/publish
+ cp <coreclr path>/bin/Product/<OS>.<arch>.Debug/libclrjit.so <app root>/bin/Release/netcoreapp2.0/<rid>/publish
```
* Set the configuration knobs you need (see below) and run your published app. The info you want should be dumped to stdout.