I'm using Sysinternals DebugView for debugging/logging during testing, and it's pretty good. However I was thinking is there more advanced tool.
Features I'm looking for:
- Live filters - log everything (well, everything "interesting"), change view by filtering
- Filter by process name
- Split log to different views by filtering
- Parsing messages
- Extending past OutputDebugString, receiving TCP/UDP messages from non-Windows devices
- Scripting(?)
Features I like in DebugView:
- Filtering
- Colors
- Good timestamps
- Live view
Any tools for this? Or other available techniques?
I'm using Windows XP/7 and am programming mainly with Delphi and Python.
Feel free to try SmartInspect. It comes with the things you've listed, and we have libraries for Delphi, .NET and Java. Also there's an unsupported Python port by one of our customers. It also has high-resolution timestamps and other unique features not found in other tools such as log file encryption, a fast named-pipe log protocol (in addition to TCP logging), backlog queues etc.
(source: gurock.com)
I was recently looking for the exact same thing and came across Trace Spy. It ended up not working for me, and I am still using DebugView for now. However, one trick I learned in the process is that it is possible to setup a Windows 7 shortcut so that it automatically runs DebugView in administrator mode:
This allows you access to more features that are disabled by UAC such as:
- Capture Global Win32
- Capture Kernel
I agree with some of the other posts that DebugView is a good tool. I just think it would be nice to get an update that is compatible with Windows 7. Or even an installer!
Recently, buggazer was discontinued in favor of a native c++ implementation called Debugview++. See https://github.com/CobaltFusion/DebugViewPP
It currently already has most of the features requested in the original question.
I haven't come across anything even close to DebugView's features, and the best runner-up is the logging services provided by debuggers like ollydbg and WinDbg.
I actually started to make my own tool with most of the features you describe (and some other like leak tracing), however I didn't get further than a working bare-bones system (I had the source up on Google Code, but I don't know if it's still there). If you do go the route of making your own, using something like .NET combined with this and this, should make it very easy, quick and powerful (you may also find this of interest).
In fact, it seems someone already made a .NET based tool, which could easily be adapted for anyone's needs...
For Delphi at least there is Raize Software's CodeSite. It has a lot of logging helpers that makes it easier to use as well. The latest version of Delphi (Delphi XE) has a limited/light version of it included.
For people that want to 'roll their own':
I've created a googlecode project called Buggazer (https://github.com/janwilmans/buggazer) It is a .net implemention currently under development. Anyone is welcome to join me.
The catching OutputDebugString and display part is finished, it is much faster and less resource consuming compared to Debugview. Main missing feature to make it useful is filtering.
The DBWinListener class is a reference implementation of catching OutputDebugString output for both Win32 and Win32Global output. Testing has been done on WinXp and Win7/8.
The project contains several reference implementations of compressed memory buffers, see the SnappyCompressor class (wrapping a native win32 Google Snappy library) or native .net GZipStorage class.
Also featured, a UTF8String implementation to store simple text in UTF8 format (for saving memory in cases where it is clear UTF16 is never useful.)
UTF8Storage abstracts this in a container class.
Working on:
- live filters
- multiple views
- coloring
- anything contributed or requested
来源:https://stackoverflow.com/questions/6938734/alternatives-to-debugview