When replaying a reproducer captured from a core file, we always use dsymForUUID for the kernel binary. When enabled, we also use it to find kexts. Since these files are already contained in the reproducer, there's no reason to call out to an external tool. If the tool returns a different result, e.g. because the dSYM got garbage collected, it will break reproducer replay. The SymbolFileProvider solves the issue by mapping UUIDs to module and symbol paths in the reproducer. Differential revision: https://reviews.llvm.org/D86389
22 lines
859 B
Bash
Executable File
22 lines
859 B
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
|
|
echo "<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//ENhttp://www.apple.com/DTDs/PropertyList-1.0.dtd\">"
|
|
echo "<plist version=\"1.0\">"
|
|
echo "<dict>"
|
|
echo " <key>AD52358C-94F8-3796-ADD6-B20FFAC00E5C</key>"
|
|
echo " <dict>"
|
|
echo " <key>DBGArchitecture</key>"
|
|
echo " <string>x86_64</string>"
|
|
echo " <key>DBGBuildSourcePath</key>"
|
|
echo " <string>/path/to/build/sources</string>"
|
|
echo " <key>DBGSourcePath</key>"
|
|
echo " <string>/path/to/actual/sources</string>"
|
|
echo " <key>DBGDSYMPath</key>"
|
|
echo " <string>/path/to/foo.dSYM/Contents/Resources/DWARF/foo</string>"
|
|
echo " <key>DBGSymbolRichExecutable</key>"
|
|
echo " <string>/path/to/unstripped/executable</string>"
|
|
echo " </dict>"
|
|
echo "</dict>"
|
|
echo "</plist>"
|