簡體   English   中英

將斷言輸出從dll重定向到文件

[英]Redirecting the assert output from a dll, to a file

我有一個C#程序調用的C DLL。 DLL中充滿了assert()語句,這些語句都沒有足夠的斷言可以進入我的屏幕。 我理解這是因為斷言輸出被寫入STDERR(或者可能是STDOUT)。

有沒有辦法以某種方式插入斷言宏,以便輸出重定向到文件?

也許斷言駐留在dll都通過了?

我在Mono上進行了以下測試

#include <assert.h>
void foo()
{
    assert(1==2);
}

//~~~~~

[DllImport("mylib.so")]
extern static void foo();

public static void Main (string[] args)
{
  foo();
}

斷言失敗后,程序立即中止。

如果你只想重定向stderr, Console.SetError(new StreamWriter("err.log"));...;Console.Error.Close()就足夠了。 但是如果程序過早中止, Console.Error將無法正常關閉,流不會被刷新,也不會記錄任何內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM