Skip to content

Commit b577e6b

Browse files
authored
perfcollect docs: run two commands instead of three (#76325)
1 parent 7ea7f2e commit b577e6b

File tree

1 file changed

+7
-13
lines changed

1 file changed

+7
-13
lines changed

docs/project/linux-performance-tracing.md

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -165,28 +165,22 @@ symbols for these when it converts its data, but ONLY if the symbols for these n
165165
the library they are for).
166166
167167
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
168-
for debugging, but it works for perfcollect as well. There are three steps to getting the symbols
168+
for debugging, but it works for perfcollect as well. There are two steps to getting the symbols:
169169
170-
1. Install dotnet symbol
170+
1. Install dotnet symbol.
171171
2. Download the symbols.
172-
3. Copy the symbols to the correct place
173172
174173
To install dotnet symbol issue the command
175174
```
176175
dotnet tool install -g dotnet-symbol
177176
```
178-
With that installed download the symbols to a local directory. if your installed version of the .NET Core runtime is
179-
2.1.0 the command to do this is
180-
```
181-
mkdir mySymbols
182-
dotnet symbol --symbols --output mySymbols /usr/share/dotnet/shared/Microsoft.NETCore.App/2.1.0/lib*.so
183-
```
184-
Now all the symbols for those native dlls are in mySymbols. You then have to copy them (as super user next to the
185-
dlls that they are for.
177+
178+
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:
179+
186180
```
187-
sudo cp mySymbols/* /usr/share/dotnet/shared/Microsoft.NETCore.App/2.1.0
181+
sudo dotnet symbol --recurse-subdirectories --symbols '/usr/share/dotnet/*.so'
188182
```
189-
After this, you should get symbolic names for the native dlls when you run perfcollect.
183+
190184
## Collecting in a Docker Container ##
191185
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.
192186

0 commit comments

Comments
 (0)