Debugging 有没有办法从命令行运行DebugDiag分析?
有没有从命令行调用分析的方法?我试过这个:Debugging 有没有办法从命令行运行DebugDiag分析?,debugging,automation,windbg,debugdiag,Debugging,Automation,Windbg,Debugdiag,有没有从命令行调用分析的方法?我试过这个: DebugDiag.Analysis.exe“C:\dumps\oops.dmp” 但它只启动了GUI(添加了oops.dmp) 我要找的是更像这样的东西: DebugDiag.Analysis.exe-转储“C:\dumps\oops.dmp”-输出“C:\results\oops DebugDiag.mht”-分析“CrashHangAnalysis,MemoryanAnalysis” 然后应该运行,而不显示任何GUI 用例:我们正在运行完
DebugDiag.Analysis.exe“C:\dumps\oops.dmp”
但它只启动了GUI(添加了oops.dmp
)
我要找的是更像这样的东西:
DebugDiag.Analysis.exe-转储“C:\dumps\oops.dmp”-输出“C:\results\oops DebugDiag.mht”-分析“CrashHangAnalysis,MemoryanAnalysis”
然后应该运行,而不显示任何GUI
用例:我们正在运行完全自动化的崩溃转储分析。自动添加DebugDiag.mht
报告会非常好
这能做到吗?是否有关于DebugDiag命令行选项的文档?DebugDiag不会开箱即用地分解CLI 但是,它通过
DebugDiag.DotNet.dll
公开了一个名为DebugDiag.DotNet.NetAnalyzer
的类,该类位于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<AnalysisRuleInfo> 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>
//
///NetAnalyzer对象用于确定可用的分析脚本、添加数据文件和启动分析。
///DebugDiag分析用户界面在内部使用此对象来管理分析规则。
///最终用户可以使用此对象开发自己的规则、批处理文件或GUI来管理数据分析。
///
///
///
///
///使用(NetAnalyzer analyzer=新NetAnalyzer())
/// {
/////在本例中,我引用了一个dll模块,该模块具有debugdiag附带的预生成规则
///analyzer.AddAnalysisRulesToRunList(@“C:\Program Files\DebugDiag\AnalysisRules\DebugDiag.AnalysisRules.dll”,false);
///
///ListAnalysisRuleInfo analysisRules=analyzer.AnalysisRuleInfos;
///
///Console.WriteLine(“分析器上的可用规则为:\n\r\n\r”);
///
///foreach(analysisRules中的AnalysisRuleInfo ruleInfo)
/// {
///Console.WriteLine(ruleInfo.DisplayName);
/// }
/// }
///
///
///
因此,基本上可以使用此API实现自动化。以下是两个项目,它们目前使用的方式如下:
DebugDiag.DotNet.dll
公开了一个名为DebugDiag.DotNet.NetAnalyzer
的类,该类位于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<AnalysisRuleInfo> 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>
//
///NetAnalyzer对象用于确定可用的分析脚本、添加数据文件和启动分析。
///DebugDiag分析用户界面在内部使用此对象来管理分析规则。
///最终用户可以使用此对象开发自己的规则、批处理文件或GUI来管理数据分析。
///
///
///
///
///使用(NetAnalyzer analyzer=新NetAnalyzer())
/// {
/////在本例中,我引用了一个dll模块,该模块具有debugdiag附带的预生成规则
///analyzer.AddAnalysisRulesToRunList(@“C:\Program Files\DebugDiag\AnalysisRules\DebugDiag.AnalysisRules.dll”,false);
///
///ListAnalysisRuleInfo analysisRules=analyzer.AnalysisRuleInfos;
///
///Console.WriteLine(“分析器上的可用规则为:\n\r\n\r”);
///
///foreach(analysisRules中的AnalysisRuleInfo ruleInfo)
/// {
///Console.WriteLine(ruleInfo.DisplayName);
/// }
/// }
///
///
///
因此,基本上可以使用此API实现自动化。以下是两个项目,它们目前使用的方式如下: