C# 捕获C中第三方库生成的调试输出

C# 捕获C中第三方库生成的调试输出,c#,.net,winforms,C#,.net,Winforms,我的winform应用程序在设备制造商制造的.NET 4.5下集成了一个第三方dll,我可以在其中使用其类的公开函数与设备通信。但是由于它们糟糕的设计,一旦任何函数可能失败,就无法从类本身检索错误详细信息,但是如果出现任何错误,该类会将一些信息放入控制台窗口,该窗口出现在“调试过滤器”下的“输出”选项卡中 现在的问题是,应用程序只能在被授权进行通信的计算机上执行,否则类将不会启动。因此,当我在受信任的计算机上测试我的应用程序时,我只能知道一些函数返回false,但没有可用的调试信息。我尝试将Tr

我的winform应用程序在设备制造商制造的.NET 4.5下集成了一个第三方dll,我可以在其中使用其类的公开函数与设备通信。但是由于它们糟糕的设计,一旦任何函数可能失败,就无法从类本身检索错误详细信息,但是如果出现任何错误,该类会将一些信息放入控制台窗口,该窗口出现在“调试过滤器”下的“输出”选项卡中

现在的问题是,应用程序只能在被授权进行通信的计算机上执行,否则类将不会启动。因此,当我在受信任的计算机上测试我的应用程序时,我只能知道一些函数返回false,但没有可用的调试信息。我尝试将TraceListener添加到Trace.Listeners,但没有显示,我还尝试调试.Listener,但没有结果,即使我在每次之后手动刷新

System.Diagnostics.Trace.Listeners.Add(new System.Diagnostics.TextWriterTraceListener("debug.txt"));
System.Diagnostics.Trace.AutoFlush = true;
这个工具也不会生成任何东西,我不知道这是因为我不知道如何正确使用这个工具。我刚打开它,没有显示我对我的应用程序做了什么


我非常怀疑这个DLL可能只是使用一些try…catch片段来捕获自己的异常并输出这些信息,而不是使用Debug.Write。我还能做什么?我不能在受信任的计算机上安装另一个Visual Studio并在那里调试我的应用程序。

尝试添加第一次机会异常处理程序:

using System;
using System.Runtime.ExceptionServices;

    class Example
    {
        static void Main()
        {
            AppDomain.CurrentDomain.FirstChanceException += 
                (object source, FirstChanceExceptionEventArgs e) =>
                {
                    Console.WriteLine("FirstChanceException event raised in {0}: {1}",
                        AppDomain.CurrentDomain.FriendlyName, e.Exception.Message);
                };