DebugViewPP
DebugViewPP copied to clipboard
Add a Time Line view (see class CTimeLine)
Mock-up
keywords: time line doctor timeline timedoctor performance debugging profiler profiling
Also an idea, show operations over time using a gantt chart
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/
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.
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
dotTrace screenshot:
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.