CobaltFusion / DebugViewPP

DebugView++, collects, views, filters your application logs, and highlights information that is important to you!
Boost Software License 1.0
1k stars 143 forks source link

Add a Time Line view (see class CTimeLine) #264

Open janwilmans opened 7 years ago

janwilmans commented 7 years ago

Mock-up timedebuggermockup

keywords: time line doctor timeline timedoctor performance debugging profiler profiling

janwilmans commented 7 years ago

Also an idea, show operations over time using a gantt chart

image

janwilmans commented 7 years ago

problem: adding CHorSplitterWindows and CTimeLineView creates problem, the ownerdrawn controls are nolonger updated correctly, and closing the logview windows runs into an assertion.

It looks like some window-messages like WM_MEASUREITEM and WM_CLOSE are not delivered to the Logview anymore.

After talking to nenad we solved this problem, however, I forgot to record the solution :( part of it was 'not a problem' because WM_CLOSE is only ever delivered to top-level windows (so was never delivered to Logview in the first place)

references: https://www.microsoft.com/msj/0795/dilascia/dilascia.aspx https://www.codeproject.com/Articles/3841/WTL-for-MFC-Programmers-Part-I-ATL-GUI-Classes#whereswtlman http://www.viksoe.dk/wtldoc/

janwilmans commented 7 years ago

Debugview's class MainFrame is a CTabbedFrameImpl<CMainFrame, CDotNetTabCtrl>

The next step to isolate this problem is to make the class CMainFrame from the POC also inherit from that.

janwilmans commented 7 years ago

Maybe it is a problem related to this: http://forums.codeguru.com/showthread.php?337200-CComboBox-MeasureItem(-)-is-not-called

although:

janwilmans commented 5 years ago

dotTrace screenshot: image

janwilmans commented 5 years ago

I integrated the CTimeLine control into Debugview++, it can be enabled at compile time using using SelectedTabItem = CLogViewTabItem2; however when it is enabled some window messages cause endless recursion and a stack overflow. For example adding an 'exclude' process filter but using the context menu should call OnViewProcessExclude, but this now crashes with a stack overflow.

for now the timeline feature is disabled until this is resolved.