DebugViewPP icon indicating copy to clipboard operation
DebugViewPP copied to clipboard

Add a Time Line view (see class CTimeLine)

Open janwilmans opened this issue 7 years ago • 6 comments

Mock-up timedebuggermockup

keywords: time line doctor timeline timedoctor performance debugging profiler profiling

janwilmans avatar Feb 11 '17 22:02 janwilmans

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

image

janwilmans avatar Jul 10 '17 18:07 janwilmans

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 avatar Aug 02 '17 07:08 janwilmans

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

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

janwilmans avatar Aug 02 '17 19:08 janwilmans

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

although:

  • it does not explain the assertion on close
  • we do not explicitly assign ID's anywhere

janwilmans avatar Aug 06 '17 23:08 janwilmans

dotTrace screenshot: image

janwilmans avatar Sep 09 '18 22:09 janwilmans

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.

janwilmans avatar Sep 10 '18 19:09 janwilmans