More fun with the StackWalk macro: it can tell you now which OS DLL called your proggie. _User32 is typically a callback like WndProc, _Kernel32 could be the start of a thread, see MbSwShow below.
Besides, there is now a watch function for strings and DWORD variable. If, for example, you wonder who changes your string buffer "FindBuf", just insert on top of the source MbWatch equ offset FindBuf, and from then on every proc that writes to this buffer will be reported in the console. Isn't that fun? StackWalk adds, in the case of RichMasm, about 7.5% to the exe, apparently without any significant performance loss (and it can be easily switched off - no code generated).
I wonder if anybody has a major source to test this feature. Some reasonably complex GUI application, with well over 1000 lines? StackWalk works fine with the RichMasm source (23,000+ lines), see attachment. To see the output, drag the *.asc over RichMasm.exe, play a little bit, then hit F9, hold Ctrl and click NO.
#count proc ...called by args
1621 SubRE _User32 01272210 00000047 00000000 0018FA88
1622 GetCS8 Copy2Pinboard 0018FB5C 00000008 00000000
1624 SubRE _User32 01370282 0000000B 00000000 00000000
1626 SaveSel GetCS8
1631 SubRE _User32 01370282 0000045E 0018FA98 00449FBC
1633 RestoreSel GetCS8
1634 SetSelFromB RestoreSel 0000025A 0000025A 00000011
1638 SubRE _User32 01370282 00000437 00000000 0018FA54
1639 SetMyTimerP SetSelFromB FFFFFF8D 00000001
1640 SubRE _User32 01370282 000000D6 0018FB64 0000025A
1641 GetRtfStream Copy2Pinboard 00008003
1648 SubRE _User32 01272210 000004E1 0000006E 00000064
1649 AdjRichEdit Copy2Pinboard
1657 SubRE _User32 01370282 0000000B FFFFFFFF 00000000
1659 RestoreSel Copy2Pinboard
1660 WndProc _User32 01161FB8 00000138 D401017C 01D703A8
1661 SetSelFromB RestoreSel 0000025A 0000025A 00000011
1665 SubRE _User32 01370282 00000437 00000000 0018FA84
1666 SetMyTimerP SetSelFromB 00000040 005919CC 04000004 01370282
1688 DrawPics SubRE
1691 SubRE _User32 01370282 000000D7 00000000 0018F978
1692 DelRegions DrawPics
1693 SetLcBufferP DrawPics
1694 gtbP SetLcBufferP
1698 SubRE _User32 01370282 0000044B 00000000 0018F98C
1699 GetNum DrawPics 00000002 0000000B
1700 GetNum DrawPics 00000001 00000004
1701 SubRE _User32 01370282 000000D6 0018F9A0 000002E6
1702 GetNum DrawPics 00000002 00000005
1703 GetNum DrawPics 00000002 00000007
1704 GetNum DrawPics 00000002 00000009
1709 CbTimer _User32 01161FB8 00000113 FFFFFF81 D8DBF0A8
1710 DrawBookmark CbTimer
1723 WndProc _User32 01161FB8 00000111 0001007F 00000000
1724 MyTest WndProc
1727 WndProc _User32 01161FB8 00000006 00000000 02032248
1728 SetTTP WndProc
1729 ClosePopup WndProc
1730 DispMenu ClosePopup
1731 SetTTP ClosePopup
1792 WndProcMenu _User32 00F52278 0000000F 00000000 00000000
1793 MbSwShow _Kernel32 01161FB8
1798 TextOutPlus WndProcMenu 00000040 00591DC4 00000108 00000003 00591DC4 00000006
1810 WndProcMenu _User32 00F52278 0000000F 00000000 00000000
1815 TextOutPlus WndProcMenu 00000040 00591E44 00000108 00000003 00591E44 00000006
1816 CbTimer _User32 01161FB8 00000113 FFFFFF81 D8DBFD74
1817 DispMenu CbTimer
1829 WndProcMenu _User32 00F52278 0000000F 00000000 00000000
1834 TextOutPlus WndProcMenu 00000040 00593C80 00000108 00000003 00593C80 00000006
1836 SubRE _User32 01370282 00000100 00000011 401D0001
Name #called total time per call
MyTest 1 1956 ms 1956 ms
WndProc 616 734 ms 1191 us
CbTimer 39 211 ms 5402 us
FindBookmark 3 94 ms 31 ms
CrtRichEdit 1 72 ms 71 ms
cwex 414 58 ms 141 us
InitBMetc 1 15 ms 14 ms
ReOpenFile 1 12 ms 11 ms
WndProcMenu 55 12 ms 223 us
SubMenuWin 40 12 ms 305 us
TextOutPlus 30 8 ms 267 us
SubRE 243 8 ms 35 us
UserMenus 1 8 ms 8341 us
DrawPics 4 6 ms 1494 us
LoadBubbles 1 6 ms 5825 us
SubList 104 4 ms 36 us
## Hit any key. Ctrl C may cause data loss. Press 'h' to hide the console, 'r' to reset ##
## offset FindBuf changed by StartFind -> macro.AC..
## offset FindBuf changed by StartFind -> Version...
## offset FindBuf changed by StartFind -> EXITM.n...