1
0
Fork 0
mirror of https://github.com/VSadov/Satori.git synced 2025-06-11 18:20:26 +09:00

perfcollect docs: run two commands instead of three (#76325)

This commit is contained in:
Adam Sitnik 2023-01-09 19:53:02 +01:00 committed by GitHub
parent 7ea7f2e5ca
commit b577e6b514
Signed by: github
GPG key ID: 4AEE18F83AFDEB23

View 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
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:
```
mkdir mySymbols
dotnet symbol --symbols --output mySymbols /usr/share/dotnet/shared/Microsoft.NETCore.App/2.1.0/lib*.so
sudo dotnet symbol --recurse-subdirectories --symbols '/usr/share/dotnet/*.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.
```
sudo cp mySymbols/* /usr/share/dotnet/shared/Microsoft.NETCore.App/2.1.0
```
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.