How to get Crash Dump annotated with Source Control informations

I would like to know if there is some documentation on how to get Crash Dump of the Engine annotated with Source Control informations (at least for Perforce or Subversion)

I am the Git Plugin developer and would like to know how to test it to get it dump “annotated” (blame) source code: I have to do some implements methods such as ISourceControlRevision::GetAnnotated() but I don’t know how it get called precisely.

Here is my current track of the “Crash dump with annotated source code”:

bool ISourceControlRevision::GetAnnotated( TArray& OutLines ) const PerforceSourceControlRevision.cpp#L133

  • called only by SourceControlHelpers::AnnotateFile(),
  • called only by ICrashDebugHelper::AddAnnotatedSourceToReport() using a changelist/check identifier
  • called only by FCrashDebugHelperWindows::CreateMinidumpDiagnosticReport() (and Mac) to Extract annotated lines from a source file stored in Perforce, and add to the crash report.
  • called by
    – MinidumpDiagnosticsApp RunMinidumpDiagnostics() for Perfore ONLY “MinidumpDiagnostics.exe [-Annotate] [-SyncSymbols] [-SyncMicrosoftSymbols]”
    FWindowsErrorReport::DiagnoseReport() (and Mac)

My question is, what do I need to test this feature with Perforce, Subversion or Git?

(also, I am aware of the documentation for Symbol Debugger/ witch is not what I am looking for)

Hey,

I can’t really speak to how to set up an environment to properly test the crash reporter system. Generally I know we run a web server to collate our crashes and it is there that we run MiniDumpDiagnostics, but that is the sum total of my knowledge.

MiniDumpDiagnostics (well, ICrashDebugHelper) assumes a LOT of stuff about the structure of our internal P4 servers (and that we are using P4 too!). How we run branches/streams, where symbols are stored etc. If you wanted to somehow make this generic you would at the very least need to develop a strategy that others would need to follow to store their symbols, binaries etc. This strategy would be expressed via ICrashDebugHelper.

Sorry I cant be more specific, but the crash reporter stuff was originally only meant to be used internally. The interface with source control was left in a semi-finished state as it was deemed unnecessary (plus there was no way to test it at the time).

(Also FWIW, Symbol Debugger is deprecated and will soon be removed.)

Hi Tom, thanks for this answer.

So I believe I will let it rest in peace because I do not have a real usage of it for myself.

(but at some point, it would be great to improve some aspect of the Source Control, I often get feature requests I cannot meet inside the existing solution).

Cheers!

At the moment I am no longer working on source control related issues (and I don’t see it happening in the near future either). I can only suggest that you submit any API changes that are required as pull requests. I’ll do my best to push them through!

Sure Tom, I know that and I am not requesting you to work on this!

Though, there are to bugfixes for regression on the Git plugin in UE4.12 that are sadly waiting for integration :frowning: