PDB ファイルを管理する
手順
デバッグシンボル (PDB) ファイルをアップロード
クラッシュダンプからコールスタックを取得するには、ADT バックエンドにゲームまたはアプリケーションのデバッグシンボル情報が必要です。
この情報を取得するには、ADT バックエンドにデバッグシンボル (Windows では .PDB) と実行ファイル (Windows では .exe) をアップロードします。
ファイルをアップロードするには、次のタスクを順に実行します。
- CrashReportClient.pak を一時フォルダに展開します。
- 一時フォルダで CrashReportClient.ini ファイルを変更します。
- CrashReportClient.pak をリパックします。
- .PDB を解析してシンボルを探し、zip 圧縮します。
- .exe ファイルと .PDB ファイルを 1 つの zip ファイルにして出荷フォルダにアーカイブします。
- 下記のように、.exe と .PDB の zip ファイルを ADT バックエンドにアップロードします。
インライン設定なし
BlackBoxCLI.exe upload
インライン設定あり
BlackBoxCLI.exe upload --apikey asdf1234 --namespace myawesomegame --game-project D:\path\to\myawesomegame --game-engine D:\UnrealEngine\UE4.25 --game-archive D:\path\to\packaged\awesomegame --platform-name windows --platform-arch x64
ADT CLI を使用してビルドのデバッグシンボルをアップロード
ADT CLI を使用して、エディタとパッケージ化されたビルドのデバッグシンボルをアップロードできます。
どちらもアップロード方法は同じですが、エディタの場合は --editor-build
引数を追加します。
インライン設定なし
BlackBoxCLI.exe upload --editor-build
.PDB ファイルと .exe ファイルを圧縮して ADT のバックエンドにアップロードするまでに数分かかります。 アップロードが完了すると、結果は次のようになります。
BlackBoxCLI.exe upload
Build ID: af59abac-f560-47b5-bf47-416128d8e282
Try to open Game Config File DefaultEngine.ini ("D:\\blackbox-sdk\\SampleGame\\Config\\DefaultEngine.ini")
Registering build...OK
Zipping executable and pdb...
Compressing: AccelMania-Win64-DebugGame.exe [113965/113965] kB
Compressing: AccelMania-Win64-DebugGame.pdb [145764/145764] kB
Dump Symbol...
Compressing: AccelMania-Win64-DebugGame.sym [73980/73980] kB
Upload executable and pdb...
Preparing to upload PDB files...
Uploading...
Sent: 71525/71525 KB
Upload Successful...
Preparing to upload Breakpad symbol...
Uploading...
Sent: 7307/7307 KB
Upload Successful...
Updating Crash Reporter Client...OK
Success!
これらのオプションを使用して、ゲームの実行ファイルを解析し、フィルタリングされた .PDB コンテンツを ADT バックエンドにアップロードすることもできます。
オプション | 包含 | 除外 | 説明 |
---|---|---|---|
-h,--help | - | - | ヘルプメッセージを表示して終了する |
-d,--dump-path | - | - | 出力 JSON ファイルをダンプする場所を指定する。パスを指定しないと、システムはダンプファイルを作成しない |
-I,--game-build-stamp | - | --upload-only | ゲームビルドのスタンプを指定する |
-u,--upload-only | --dump-path | --game-build-stamp | JSON が既にあると仮定し、PDB 解析フェーズを飛ばして直接アップロードする |
-Z,--zip-file-location | - | - | アップロードする zip ファイルへのパス。このオプションでは、準備済みの zip ファイルが必要 |
-E, --editor-build | エディタビルド用に PDB をアップロードする。このオプションは Unreal Editor のすべての PDB ファイルを収集し、情報を ADT バックエンドにアップロードする | ||
--platform-arch | アップロードするゲームデバッグシンボルのプラットフォームアーキテクチャ (例:x64) | ||
--platform-name | アップロードするゲームデバッグシンボルのプラットフォーム名 (例:windows、xsx、xboxonegdk、PS5) |
Unreal 5 用 Linux デバッグシンボルをアップロード
Unreal 5 用 Linux デバッグシンボルをアップロードするには、ゲームで追加設定が必要です。次の設定フィールドとセクションを、ゲームの DefaultEngine.ini ファイルに追加します。
[/Script/LinuxPlatform.LinuxTargetSettings]
bPreservePSYM=True
この設定を追加した後は、すべてのビルドアーティファクト (通常は intermediate ディレクトリ内) をクリーンアップしてから Linux のゲームをビルドするようにしてください。そうしなければエラーが発生します。
すべてが設定され、Linux ゲームをビルドする準備ができたら、Unreal 5 のアップロードコマンドを直接呼び出して Linux デバッグシンボルをアップロードします。
インライン設定あり
BlackBoxCLI.exe upload --apikey asdf1234 --namespace myawesomegame --game-project D:\path\to\myawesomegame --game-engine D:\UnrealEngine\UE4.25 --game-archive D:\path\to\packaged\awesomegame --platform-name linux-server --platform-arch x64
PDB シンボルをフィルタリング [非推奨]
このコマンドは非推奨になりました。
PDB シンボルのフィルタリングは、プロジェクトで特定のキーワードを検索する場合に便利です。次の手順に従って PDB シンボルをフィルタリングします。
BlackBoxCLI.exe filter add compiland include keyword1 keyword2 keyword3
- キーワードをスペースで区切り、次のように、有効なコマンドチェーンを作成します。
BlackBoxCLI.exe filter add compiland include FAvengersSDK
- 次のコマンドを使用して、現在のフィルターが有効かどうかを確認します。
BlackBoxCLI.exe filter list
- 出力は次のとおりです。
compiland:
include:
[Aa]vengers
[Aa]ccel[Mm]ania
function:
include:
[Tt]ick
public:
exclude:
public:
static
struct
const
[Cc]lass
enum
void
vftable
include:
AccelMania
Avengers
このコマンドは非推奨になりました。
PDB シンボルをフィルタリングしたら、ローカルマシンにダンプして、JSON ファイルに変換します。 ゲームの実行ファイルを解析し、下記のように、ダンプコマンドを使用します。
PDB シンボルを JSON ファイルにダンプするには、次のコマンドを実行します。
BlackBoxCLI.exe dump -d <file output>
この例では、PDB シンボルを mydumpedinfo.json という JSON ファイルにダンプします。
BlackBoxCLI.exe dump -d .\mydumpedinfo.json
オプション | 説明 |
---|---|
-h,--help | ヘルプメッセージを表示して終了する |
-f,--pdb-file-name | アップロードする PDB ファイルを指定する |
-d,--dump-path | 出力 JSON ファイルをダンプする場所を指定する |
-I,--game-build-stamp | ゲームビルドスタンプを指定する |
-p,--print | 解析結果をコンソール画面に表示する |