Здравствуйте, Alter_, Вы писали:
A_>и вместо OutputDebugString() использовать DbgDump_PrintXXX()
В том-то и дело, что в DefaultTraceListener до OutputDebugString дело не доходит, если программа запущена из-под отладчика.
Иначе бы и DbgView нормально работал. Лечится это вот таким кодом:
public class ODSTraceListener : DefaultTraceListener
{
public ODSTraceListener() : base("ODS")
{
}
public override void Write(string message)
{
base.Write(message);
if (Debugger.IsLogging())
{
if (message == null)
{
API.OutputDebugString(string.Empty);
}
else
{
API.OutputDebugString(message);
}
}
}
}
Ну и дальше нужно выкинуть из списка Listener'ов DefaultTraceListener и добавить наш доморощенный.