Debug.Listeners/Trace.Listeners: Ausgabe kommt nicht an

09/10/2007 - 02:17 von Armin Zingler | Report spam
Hallo erstmal,

ich füge TraceListener sowohl zu Debug.Listeners als auch zu Trace.Listeners
hinzu. Meine eigenen Ausgaben per "Debug.Writeline" kommen dort auch an,
jedoch nicht alle anderen Debug-Ausgaben, die sonst noch im Ausgabefenster
angezeigt werden und die ich mit dieser Methode eigentlich abfangen und in
einer Datei speichern wollte.

Ich verwende "unmanaged debugging", um DirectX zu debuggen. Alle Ausgaben,
die durch DX augegeben werden (z.B. "Direct3D9: (INFO) :Direct3D9 Debug
Runtime selected") und die im Ausgabefenster der IDE auch ankommen, sollen
durch die Listener aufgefangen werden. Wie gesagt, da kommt aber nichts an.
Habe alles mehrfach geprüft, aber ich finde den Grund nicht.

Hat jemand "zufàllig" noch eine Idee?

Armin

PS: Wenn jemand ein Posting von mir zu fast gleichem Thema finden sollte
(Januar 2007): Der Grund ist mittlerweile ausgeschlossen, also daran liegt
es nicht. :-)

PPS: VB 2003
 

Lesen sie die antworten

#1 Frank Dzaebel
09/10/2007 - 07:31 | Warnen spam
Hallo Armin,

[Unmanaged debugging, DirectX]
ich füge TraceListener sowohl zu Debug.Listeners als auch zu
Trace.Listeners
hinzu. Meine eigenen Ausgaben per "Debug.Writeline" kommen dort auch an,
jedoch nicht alle anderen Debug-Ausgaben



Zunàchst muss ich nach Deiner Visual Studio Version fragen,
denn zum Beispiel unterstützt Visual C# Express nicht
"unmanaged debugging". Unter den Express-Editionen kann
das nur Visual C++ Express.

Ist weiterhin alles korrekt aktiviert (standardmàssig
ist ja "nicht verwaltetes Codedebuggen" nicht aktiviert) ?

[Gewusst wie: Aktivieren des Debuggens für nicht verwalteten Code]
http://msdn2.microsoft.com/de-de/library/tdw0c6sf(VS.80).aspx

[Tips and Tricks Using Managed Code]
http://msdn2.microsoft.com/en-us/li...18663.aspx

Ggf. Trace.AutoFlush-Eigenschaft auf true setzen.
Ggf. TraceListener.IsThreadSafe checken.

weitere Tips:

aus: [Beginning .NET GameProgramming in C#]
Debugging Hints:

Before closing this chapter, we want to leave you with a few tips for
debugging DirectX applications. Hopefully they will save you some time (and
frustration) when you are debugging your programs. They don’t necessarily
have anything todo with Spacewar, but are useful in general.

Turn on unmanaged debugging. Although DirectX9 has managed interfaces, it
still won’t return useful errorcodes from the DirectX DLLs unless you enable
unmanaged debugging. InVisual Studio, select your project’s properties from
the Project menu. Click the Configuration Properties folder, and then select
Debugging. Set EnableUnmanaged Debugging to true.

Use the debug DirectX runtime, and turn up the debug output level. In the
Windows Control Panel, you’ll find a DirectX utility. Launch the utility,
and click the Direct3D tab. Select the Use debug version of Direct3D option
and move the slider to increase the level of debug output. You’ll seethe
DirectX messages in your output window when you are debugging.

CAUTION
This will dramatically affect your performance, butsometimes it’s the only
way to determine why Direct3D won’t render your graphics. Once you’ve found
the error, be sure to set these back.

Run as a console application. Select your project properties again, click
the Common Properties folder, and select General. Set the Output Type option
to Console Application. Because you are using Windows Forms, the program
will still create all ofyour forms, but when it runs it will pop up a
console window that you canaccess using the Console.Write and WriteLine()
methods. It’s great fordebugging things when you don’t want to flip back to
your developmentenvironment to look at the output window.

Use the property grid. You can create a form with a property grid on it to
run alongside your appli-cation when you’re debugging. This is great for
trying out RenderStates, CullModes, Clipping Planes, etc. Set
propertyGrid.SelectedObject to what-ever you want to have runtime control
over, and the property grid controldoes all of the work for you. All you
have to do is tweak the values.

Kommen die Meldungen denn hier an:

[DebugView for Windows v4.71]
http://www.microsoft.com/technet/sy...gview.mspx


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen