зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1774674 - Flesh out the documentation for getting Instruments to pick up macOS kernel symbols. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D149561
This commit is contained in:
Родитель
cc22f98900
Коммит
23f6ddfed5
|
@ -48,14 +48,58 @@ also need the fix to [Bug
|
||||||
719427](https://bugzilla.mozilla.org/show_bug.cgi?id=719427 "https://bugzilla.mozilla.org/show_bug.cgi?id=719427")
|
719427](https://bugzilla.mozilla.org/show_bug.cgi?id=719427 "https://bugzilla.mozilla.org/show_bug.cgi?id=719427")
|
||||||
|
|
||||||
## Kernel stacks
|
## Kernel stacks
|
||||||
|
|
||||||
Under "File" -> "Recording Options" you can enable "Record Kernel Callstacks".
|
Under "File" -> "Recording Options" you can enable "Record Kernel Callstacks".
|
||||||
To get full symbols and not just the exported ones, you'll to install the matching
|
To get full symbols and not just the exported ones, you'll to install the matching
|
||||||
[Kernel Debug Kit](https://developer.apple.com/download/all/?q=Kernel%20Debug%20Kit).
|
[Kernel Debug Kit](https://developer.apple.com/download/all/?q=Kernel%20Debug%20Kit).
|
||||||
Instruments uses Spotlight to find the dSYMs with the matching uuid so if the
|
Make sure you install the one whose macOS version exactly matches your version,
|
||||||
symbols are still not showing up it may help to move the appropriate dSYM file
|
including the identifier at the end (e.g. "12.3.1 (21E258)").
|
||||||
to a place where Spotlight will notice it. You can double check the uuid of the
|
|
||||||
kernel in `/System/Library/Kernels` with `dwarfdump --uuid` and check that
|
### Allow Instruments to find kernel symbols
|
||||||
Spotlight knows about the file with `mdls`.
|
|
||||||
|
Installing the KDK is often not enough for Instruments to find the symbols.
|
||||||
|
Instruments uses Spotlight to find the dSYMs with the matching UUID, so you
|
||||||
|
need to put the dSYM in a place where Spotlight will index it.
|
||||||
|
|
||||||
|
First, check the UUID of your macOS installation's kernel. To do so, run the
|
||||||
|
following:
|
||||||
|
|
||||||
|
```
|
||||||
|
% dwarfdump --uuid /System/Library/Kernels/kernel.release.t6000
|
||||||
|
UUID: C342869F-FFB9-3CCE-A5A3-EA711C1E87F6 (arm64e) /System/Library/Kernels/kernel.release.t6000
|
||||||
|
```
|
||||||
|
|
||||||
|
Then, find the corresponding dSYM file in the KDK that you installed, and
|
||||||
|
run `mdls` on it. For example:
|
||||||
|
|
||||||
|
```
|
||||||
|
% mdls /Library/Developer/KDKs/KDK_12.3.1_21E258.kdk/System/Library/Kernels/kernel.release.t6000.dSYM
|
||||||
|
```
|
||||||
|
|
||||||
|
(Make sure you use the `.release` variant, not the `.development` variant
|
||||||
|
or any of the others.)
|
||||||
|
|
||||||
|
If the output from `mdls` contains the string `com_apple_xcode_dsym_uuids`
|
||||||
|
and the UUID matches, you're done.
|
||||||
|
|
||||||
|
Otherwise, try copying the `kernel.release.t6000.dSYM` bundle to your home
|
||||||
|
directory, and then run `mdls` on the copied file. For example:
|
||||||
|
|
||||||
|
```
|
||||||
|
% cp -r /Library/Developer/KDKs/KDK_12.3.1_21E258.kdk/System/Library/Kernels/kernel.release.t6000.dSYM ~/
|
||||||
|
% mdls ~/kernel.release.t6000.dSYM
|
||||||
|
_kMDItemDisplayNameWithExtensions = "kernel.release.t6000.dSYM"
|
||||||
|
com_apple_xcode_dsym_paths = (
|
||||||
|
"Contents/Resources/DWARF/kernel.release.t6000"
|
||||||
|
)
|
||||||
|
com_apple_xcode_dsym_uuids = (
|
||||||
|
"C342869F-FFB9-3CCE-A5A3-EA711C1E87F6"
|
||||||
|
)
|
||||||
|
kMDItemContentCreationDate = 2022-03-21 15:25:57 +0000
|
||||||
|
[...]
|
||||||
|
```
|
||||||
|
|
||||||
|
Now Instruments should be able to pick up the kernel symbols.
|
||||||
|
|
||||||
## Misc
|
## Misc
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче