perfcollect docs: run two commands instead of three (#76325)
authorAdam Sitnik <adam.sitnik@gmail.com>
Mon, 9 Jan 2023 18:53:02 +0000 (19:53 +0100)
committerGitHub <noreply@github.com>
Mon, 9 Jan 2023 18:53:02 +0000 (19:53 +0100)
docs/project/linux-performance-tracing.md

index 217bd2d..12b07b4 100644 (file)
@@ -165,28 +165,22 @@ symbols for these when it converts its data, but ONLY if the symbols for these n
 the library they are for).
 
 There is a global command called [dotnet symbol](https://github.com/dotnet/symstore/blob/master/src/dotnet-symbol/README.md#symbol-downloader-dotnet-cli-extension) which does this.   This tool was mostly desiged to download symbols
-for debugging, but it works for perfcollect as well.  There are three steps to getting the symbols
+for debugging, but it works for perfcollect as well.  There are two steps to getting the symbols:
 
-   1. Install dotnet symbol
+   1. Install dotnet symbol.
    2. Download the symbols.
-   3. Copy the symbols to the correct place
 
 To install dotnet symbol issue the command
 ```
      dotnet tool install -g dotnet-symbol
 ```
-With that installed download the symbols to a local directory.  if your installed version of the .NET Core runtime is
-2.1.0 the command to do this is
-```
-    mkdir mySymbols
-    dotnet symbol --symbols --output mySymbols  /usr/share/dotnet/shared/Microsoft.NETCore.App/2.1.0/lib*.so
-```
-Now all the symbols for those native dlls are in mySymbols.   You then have to copy them (as super user next to the
-dlls that they are for.
+
+To download symbols for **all native libraries** (including .NET runtime/framework as well as any other installed frameworks like ASP.NET) and store them next to them:
+
 ```
-    sudo cp mySymbols/* /usr/share/dotnet/shared/Microsoft.NETCore.App/2.1.0
+    sudo dotnet symbol --recurse-subdirectories --symbols '/usr/share/dotnet/*.so'
 ```
-After this, you should get symbolic names for the native dlls when you run perfcollect.
+
 ## Collecting in a Docker Container ##
 Perfcollect can be used to collect data for an application running inside a Docker container.  The main thing to know is that collecting a trace requires elevated privileges because the [default seccomp profile](https://docs.docker.com/engine/security/seccomp/) blocks a required syscall - perf_events_open.