[英]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.