Giter Site home page Giter Site logo

cobaltfusion / debugviewpp Goto Github PK

View Code? Open in Web Editor NEW
946.0 61.0 138.0 23.67 MB

DebugView++, collects, views, filters your application logs, and highlights information that is important to you!

License: Boost Software License 1.0

C++ 96.49% C 1.39% Batchfile 0.11% Java 0.04% C# 0.99% Python 0.14% CMake 0.83%
outputdebugstring filter logfile regular-expression dbgview debugview debugging-tool

debugviewpp's People

Contributors

77 avatar djeedjay avatar enigmata avatar gjdevos avatar harriv avatar janwilmans avatar justanotheranonymoususer avatar lazyroy avatar tripplet avatar udoe avatar vadz avatar vlovo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

debugviewpp's Issues

Disable colomns

Can we have a context menu for the listview headers to show/hide colomns?

F3 to 'find next'

Bind F3 key to the find-next function
Also bind shift-F3 to the find-previous function

Store the messages in compressed memory

Less resources would required if we compress messages using for example Google snappy https://code.google.com/p/snappy/

A fast and easy way to handle this is to use a fixed lines-size block buffer.
This way compression/decompression is clustered in a way that it is only needed when blocksize is reached to both reads and writes.

pseudo code:
create a vector writeBuffer
and when writeBuffer.size() == blocksize compress the writeBuffer and store it in vector< buffer* > mBlocks

see https://code.google.com/p/buggazer/source/browse/source/BugGazer/Storage/SnappyBlocks.cs

specifically, the method string GetText(int stringId)

Ignore filter

This type of filter would prevent lines from auto-scrolling your view, so the view scrolls down only if relevant new information is comes in.

Group messages by ThreadID using coloring

This could be done by logging the threadID in the message, for example:

Foo::doFoo(1, 2, 3) enter (tid: 1234)
dummy message (tid: 555)
dummy message (tid: 555)
Foo::doBar(1, 2) enter (tid: 1234)
dummy message (tid: 666)
dummy message (tid: 666)
Foo::doBar(1, 2) leave -> 4 (tid: 1234)
Foo::doBar(1, 2) leave (tid: 1234)

It would be useful to follow the code-flow if the lines from the same TID could have the same color or where indented at the same level:

    Foo::doFoo(1, 2, 3) enter (tid: 1234)
dummy message (tid: 555)
dummy message (tid: 555)
    Foo::doBar(1, 2) enter (tid: 1234)
dummy message (tid: 666)
dummy message (tid: 666)
    Foo::doBar(1, 2) leave -> 4 (tid: 1234)
    Foo::doBar(1, 2) leave (tid: 1234)

Log to file + Logfile maximum size

Feature to stream the logging directly to a file, that can then be monitored remotely using any kind of sharing mechanism, specifically, a program like WinTail (http://tailforwin32.sourceforge.net/ ) should be able to monitor the file. That means a second process should be able to read the file while debugview++ is writing to it.

Open file

Open an existing file to do post-mortom filtering

trigger custom action filter

a matching filter of this type would start a custom action, like a messageBeep or an executable with the pid+msg as parameters.

Stop scrolling filter

Filter that when matched stops the auto-scroll feature.
Example: stop on "Shutting down the rootbrickbox" or the first line that contains the work 'exception'

Bookmarks

Pressing CTRL- (0-9) will bookmark the selected line.
Pressing (0-9) will jump back to the bookmarked line.

These keyboard keys (0-9) conflicts with the SAIT search-as-I-type feature, so CTRL (0-9) could be used instead.

Pass-through feature

Debugview++ now monitors the DBWinMutex to receive the Outputdebugstring messages. See http://www.unixwiz.net/techtips/outputdebugstring.html for an explanation to this mechanism. When a debugging tool (like visual studio) is attached to the process Debugview++ will nolonger receive any messages.

Also a second client (let's say BugGazer https://code.google.com/p/buggazer/ ) would contest for the DBWinMutex and both clients end up receiving only some of the messages.

This could be resolved by API hooking into the Kernel32 OutputDebugStringA method, also this would allow us to call the original API as well, so DBWinMutex based clients would also receive the messages.

Smart find-next (f4?)

pressing 'smart find-next (F4?) after selecting a highlighted line jumps to the next line with the same highlighting.

Key to move to next highlighed item

Move the next highlighted item would be useful, then a 'exceptions' TAB can be made to highlighting only 'exceptions'. If you switch to this tab and press a key the next (or last available) hightlighted item (exception) is shown

find and match keyword

If a keyword is found, and later the same keyword appears again, make it underlined and clickable to jump the previous appearance of the keyword.

Different application / implementation:

Find a logged memory address:

0001 Allocated object 'foo' 0x12341234 at Foo::CreateObject (Foo.cpp:24)
.....
1000 Memory leaks detected:
1001 block of 24 bytes at 0x12341234

Hovering the mouse above the second occurrence (and now highlighted) of 0x12341234 would should show the first message at (1) in a tooltip

Tracking item

Filter that selects and centers the found item each time it is found, allowing you to continuously monitor an item in its context.

Context menu option to 'exclude process'

1 [ Exclude this process ]
2 [ Exclude processname ]

Option 1:
This should add a filter to exclude the process by its handle so when a new process is started with the same name, or the PID of the current process is re-used its output is not filtered.

Option 2:
This should add a filter to exclude the process that produced the line by its full executable name.

DebugView does not close on Windows 7

DebugView does not close on Windows 7
if UpdateColumnWidths(); in CLogView::SaveSettings is enabled (uncommented)

If have tested this on my workstation at FEI and reproduced the behavior on a local laptop that hosts Windows 7.

DBGVIEWCLEAR support

Clear-output string: When DebugView sees the special debug output string "DBGVIEWCLEAR" it clears the output.

Show SAIT (Search-As-I-Type) status

While you type you cannot see any difference between a type and a good keyword where the result is not found.
Maybe we could show in de statusbar:

'term' not found....
'term' found at line xxx

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.