Почему DbgView пропускает некоторые записи трассировки, но трассировки можно увидеть в тестовых бегунах - PullRequest
2 голосов
/ 03 ноября 2011

Может кто-нибудь объяснить, почему DbgView пропускает некоторые из моих записей трассировки?

Я использую блок ведения журнала Enterprise Library 5.0 с прослушивателем трассировки, полученным из EntLib CustomTraceListener, как показано ниже ...

[ConfigurationElementType(typeof(CustomTraceListenerData))]
public class DebugTraceListener : CustomTraceListener
{
    public override void Write(string message)
    {
        Debug.Write(message);
    }

    public override void WriteLine(string message)
    {
        Debug.WriteLine(message);
    }

    public override void TraceData(TraceEventCache eventCache, string source, 
                                 TraceEventType eventType, int id, object data)
    {
        if (data is LogEntry && Formatter != null)
        {
            WriteLine(Formatter.Format(data as LogEntry));
        }
        else
        {
            WriteLine(data.ToString());
        }
    }
}

Я вижу всю трассировку как в тестовом средстве Resharper в VS2010, так и в тестере NUnit GUI.

Я также могу отправить трассировку в прослушиватель плоских файлов, и это фиксирует все записи трассировки, НО, когда я использую DbgView (а также TraceSpy) отображается только часть трассы .

Еще одна проблема: я использую PostSharp, чтобы добавить запись в журнал в качестве аспекта с помощью атрибута, а не непосредственно в бизнес-код

1 Ответ

2 голосов
/ 03 ноября 2011

Я видел, как это происходит, когда у вас запущено другое приложение, которое также захватывает некоторую часть трафика отладки.Если вы запускаете приложение и отлаживаете какой-либо компонент VS2010, вы не увидите, какие выходные данные отладки направляются в IDE вместо DebugView.Это может быть удобно, если вы одновременно тестируете клиент-серверные приложения на одном и том же компьютере, но это может привести к описанной вами проблеме.Если не считать этого, я бы просто удостоверился, что Capture Global Win32 также проверяется из меню Capture (я видел, что это имеет значение, даже если я этого не ожидал).

Пропущенные сообщения всегда одни и те же?

...