Windowsでクラッシュレポートを送信する際、特定のディレクトリ(プロジェクト名\Saved\Recordings)に保存されている動画をアップロードしたいと考えています。
これを実現するには、どの部分を拡張すればよいでしょうか?
<br/>
[Attachment Removed]
Windowsでクラッシュレポートを送信する際、特定のディレクトリ(プロジェクト名\Saved\Recordings)に保存されている動画をアップロードしたいと考えています。
これを実現するには、どの部分を拡張すればよいでしょうか?
<br/>
[Attachment Removed]
再現手順[Attachment Removed]
お世話になっております。
変更する場所は2か所です。
既存の OptionalAttachments の仕組みがそのまま使えます。FWindowsPlatformCrashContext::AddOptionalAttachment()(WindowsPlatformCrashContext.h)に動画のパスを事前に登録しておくと、クラッシュ時に CopyPlatformSpecificFiles() から CopyOptionalAttachments() が呼ばれ、Saved/Crashes/<CrashGUID>/OptionalAttachments/ に移動されます。
注意点は2つあります。Move なので元ファイルは Recordings から消えます(残したければ CopyOptionalAttachments() の Move を Copy に変更)。また、パッケージ版のインプロセス経路が対象で、エディタの monitor モードでは拾われません。
もっと簡単にするなら、CopyPlatformSpecificFiles()(WindowsPlatformCrashContext.cpp)の CrashVideo.avi をコピーしている箇所の隣で、Recordings の動画を OutputDirectory 直下にコピーしてください。クラッシュフォルダ直下のファイルは CRC が自動で全部送るので、CRC 側の変更は不要です。
OptionalAttachments は FCrashUploadToDataRouter::BeginUploadOptionalAttachments()(CrashUpload.cpp)で、本体の送信成功後に別便で送られます。DataRouter 経由のみです。送られるのは FCrashReportClient の bSendOptionalAttachments が true のときだけで、これを立てるのは Submit(true) か SubmitOptionalAttachmentsAndClose() だけです。
UI(SCrashReportClient.cpp)のチェックボックスはスクリーンショット専用で、しかも Send ボタンに渡している bool は構築時の false で固定されるため、チェックしても反映されません。動画用に表示条件と Submit の呼び出しを直す必要があります。Unattended モードは OptionalAttachments を送りません。
お手数ですが、よろしくお願いします。
[Attachment Removed]
アドバイスありがとうございます、試してみます
[Attachment Removed]