1

有没有办法从命令行调用DebugDiag Analysis?我试过这个: DebugDiag.Analysis.exe "C:\dumps\oops.dmp" 但它只启动了 GUI(oops.dmp添加了)。

我正在寻找的是更像这样的东西: DebugDiag.Analysis.exe -dump "C:\dumps\oops.dmp" -out "C:\results\oops-DebugDiag.mht" -anaylsis "CrashHangAnalysis,MemoryAnalysis" 然后它应该运行,而不显示任何 GUI。

用例:我们正在使用SuperDump全自动运行故障转储分析。自动添加 DebugDiag.mht报告会非常好。

这可以做到吗?是否有关于 DebugDiag 命令行选项的文档?

4

1 回答 1

0

DebugDiag 不会公开开箱即用的 CLI。

但是,它公开了一个名为DebugDiag.DotNet.NetAnalyzervia的类,该类DebugDiag.DotNet.dll在 DebugDiag 的安装目录中可用。这是它的文档:

/// <summary>
/// The NetAnalyzer object is used to determine available analysis scripts, add data files, and start an analysis.  
/// This object is used internally by the DebugDiag Analysis user interface to manage analysis rules.  
/// End users can use this object to develop their own rules, batch files, or GUI's to manage data analysis.
/// </summary>
/// <remarks>
/// <example>
/// <code language="cs">
/// using (NetAnalyzer analyzer = new NetAnalyzer())
/// {
///     //In this example I'm referencing a dll module that has the prebuild rules that ship with debugdiag 
///     analyzer.AddAnalysisRulesToRunList(@"C:\Program Files\DebugDiag\AnalysisRules\DebugDiag.AnalysisRules.dll", false);
///
///     List&lt;AnalysisRuleInfo&gt; analysisRules = analyzer.AnalysisRuleInfos;
///
///     Console.WriteLine("The available rules on the analyzer are: \n\r\n\r");
///
///     foreach(AnalysisRuleInfo ruleInfo in analysisRules)
///     {
///          Console.WriteLine(ruleInfo.DisplayName);
///     }
/// }
/// </code>
/// </example>
/// </remarks>

所以,基本上可以使用这个 API 来自动化它。这里有两个项目,目前是这样使用的:

于 2017-03-06T23:02:35.393 回答