Jump to content
Uwe Raabe

Structured Difference Viewer added to MMX Code Explorer

Recommended Posts

Version V15.0.37 of MMX Code Explorer introduces Structured Difference Viewer (former available as a separate product). It is registered as an External Difference Viewer in the IDE and can be used as an alternative way to compare source files.

image.thumb.png.d257c876848c3f0b65d9f654147d9e64.png

  • Like 7
  • Thanks 3

Share this post


Link to post

Good idea to make it part of MMXCE. I purchased the diff viewer back in the day but it was such a niche product I used to forget to install it when setting up a new dev VM. Looking forward to seeing the IDE integration.

Share this post


Link to post

I get error after open Viewer and trying close it by X button.

And now only killing the process can close Viewer app.

Delphi 10.3 and Windows 7.

 

image.thumb.png.c51cd881fab083cb27668cd2e8ed582b.png

Share this post


Link to post

Googling that error code gives one usable hint:

Quote

The exception C06D007F is a windows delayed load or missing export exception.

As I have not the slightest idea which DLL may be causing this I would like to ask if you can try some Sysinternals magic to find that out. It might be related to using Windows 7 and MMSDV being compiled with Delphi 10.4.2.

Share this post


Link to post

Process Monitor with filter: result is not SUCCESS
 

15:14:02,9686712    MMX_SDV.exe    7608    CreateFile    C:\Windows\Prefetch\MMX_SDV.EXE-C22AB698.pf    NAME NOT FOUND    Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Attributes: n/a, ShareMode: None, AllocationSize: n/a
15:14:02,9692724    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\System32\wow64.dll    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:02,9696735    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\System32\wow64win.dll    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:02,9701432    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\System32\wow64cpu.dll    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:02,9705388    MMX_SDV.exe    7608    CreateFile    C:\Windows\System32\wow64log.dll    NAME NOT FOUND    Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a
15:14:02,9727291    MMX_SDV.exe    7608    CreateFile    C:\Users\Jacek\AppData\Local\Programs\Raabe Software\MMX\15\winspool.drv    NAME NOT FOUND    Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a
15:14:02,9730834    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\SysWOW64\winspool.drv    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:02,9747241    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\SysWOW64\sechost.dll    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:02,9769192    MMX_SDV.exe    7608    CreateFile    C:\Users\Jacek\AppData\Local\Programs\Raabe Software\MMX\15\MMX_SDV.exe.Local    NAME NOT FOUND    Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a
15:14:02,9772908    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.18837_none_41e855142bd5705d\comctl32.dll    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:02,9781272    MMX_SDV.exe    7608    CreateFile    C:\Users\Jacek\AppData\Local\Programs\Raabe Software\MMX\15\version.dll    NAME NOT FOUND    Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a
15:14:02,9784119    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\SysWOW64\version.dll    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:02,9793129    MMX_SDV.exe    7608    CreateFile    C:\Users\Jacek\AppData\Local\Programs\Raabe Software\MMX\15\netapi32.dll    NAME NOT FOUND    Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a
15:14:02,9799320    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\SysWOW64\netapi32.dll    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:02,9804474    MMX_SDV.exe    7608    CreateFile    C:\Users\Jacek\AppData\Local\Programs\Raabe Software\MMX\15\netutils.dll    NAME NOT FOUND    Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a
15:14:02,9811045    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\SysWOW64\netutils.dll    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:02,9815691    MMX_SDV.exe    7608    CreateFile    C:\Users\Jacek\AppData\Local\Programs\Raabe Software\MMX\15\srvcli.dll    NAME NOT FOUND    Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a
15:14:02,9820002    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\SysWOW64\srvcli.dll    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:02,9824942    MMX_SDV.exe    7608    CreateFile    C:\Users\Jacek\AppData\Local\Programs\Raabe Software\MMX\15\wkscli.dll    NAME NOT FOUND    Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a
15:14:02,9828137    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\SysWOW64\wkscli.dll    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:02,9833001    MMX_SDV.exe    7608    CreateFile    C:\Users\Jacek\AppData\Local\Programs\Raabe Software\MMX\15\SHFolder.dll    NAME NOT FOUND    Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a
15:14:02,9836609    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\SysWOW64\shfolder.dll    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:02,9843890    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\SysWOW64\apphelp.dll    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:02,9849440    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\AppPatch\sysmain.sdb    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:02,9872487    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\SysWOW64\imm32.dll    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:02,9881468    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\SysWOW64\imm32.dll    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:02,9886826    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\SysWOW64\imm32.dll    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:02,9911259    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\WindowsShell.Manifest    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:02,9937350    MMX_SDV.exe    7608    QueryDirectory    C:\Users\Jacek\AppData\Local\Programs\Raabe Software\MMX\15\MMX_SDV.pl-PL    NO SUCH FILE    Filter: MMX_SDV.pl-PL
15:14:02,9939015    MMX_SDV.exe    7608    QueryDirectory    C:\Users\Jacek\AppData\Local\Programs\Raabe Software\MMX\15\MMX_SDV.pl    NO SUCH FILE    Filter: MMX_SDV.pl
15:14:02,9940577    MMX_SDV.exe    7608    QueryDirectory    C:\Users\Jacek\AppData\Local\Programs\Raabe Software\MMX\15\MMX_SDV.en-US    NO SUCH FILE    Filter: MMX_SDV.en-US
15:14:02,9941802    MMX_SDV.exe    7608    QueryDirectory    C:\Users\Jacek\AppData\Local\Programs\Raabe Software\MMX\15\MMX_SDV.en    NO SUCH FILE    Filter: MMX_SDV.en
15:14:02,9943194    MMX_SDV.exe    7608    QueryDirectory    C:\Users\Jacek\AppData\Local\Programs\Raabe Software\MMX\15\MMX_SDV.PLK    NO SUCH FILE    Filter: MMX_SDV.PLK
15:14:02,9944376    MMX_SDV.exe    7608    QueryDirectory    C:\Users\Jacek\AppData\Local\Programs\Raabe Software\MMX\15\MMX_SDV.PL    NO SUCH FILE    Filter: MMX_SDV.PL
15:14:02,9970411    MMX_SDV.exe    7608    CreateFile    C:\Windows\SysWOW64\rpcss.dll    NAME NOT FOUND    Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a
15:14:02,9971933    MMX_SDV.exe    7608    CreateFile    C:\Windows\SysWOW64\rpcss.dll    NAME NOT FOUND    Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a
15:14:02,9986440    MMX_SDV.exe    7608    CreateFile    C:\Users\Jacek\AppData\Local\Programs\Raabe Software\MMX\15\wtsapi32.dll    NAME NOT FOUND    Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a
15:14:02,9997924    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\SysWOW64\wtsapi32.dll    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:03,0003313    MMX_SDV.exe    7608    CreateFile    C:\Users\Jacek\AppData\Local\Programs\Raabe Software\MMX\15\WINSTA.dll    NAME NOT FOUND    Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a
15:14:03,0008270    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\SysWOW64\winsta.dll    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:03,0043491    MMX_SDV.exe    7608    CreateFile    C:\Users\Jacek\AppData\Local\Programs\Raabe Software\MMX\15\uxtheme.dll    NAME NOT FOUND    Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a
15:14:03,0050350    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\SysWOW64\uxtheme.dll    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:03,0062632    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\SysWOW64\pl-PL\user32.dll.mui    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:03,0073723    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\Globalization\Sorting\SortDefault.nls    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:03,0141024    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\Registration\R00000000007e.clb    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:03,0148925    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\SysWOW64\WindowsCodecs.dll    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:03,0387725    MMX_SDV.exe    7608    CreateFile    C:\Users\Jacek\AppData\Local\Programs\Raabe Software\MMX\15\MMX_SDV.exe.Local    NAME NOT FOUND    Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a
15:14:03,0390254    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\winsxs\x86_microsoft.windows.c..-controls.resources_6595b64144ccf1df_6.0.7600.16385_pl-pl_57651e9fc65047a4\comctl32.dll.mui    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:03,0424186    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\Fonts\StaticCache.dat    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:03,0655592    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\SysWOW64\ole32.dll    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:03,0839244    MMX_SDV.exe    7608    CreateFile    C:\Users\Jacek\AppData\Local\Programs\Raabe Software\MMX\15\MMX_SDV.exe.Local    NAME NOT FOUND    Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a
15:14:40,1728374    MMX_SDV.exe    7608    CreateFile    C:\Users\Jacek\AppData\Local\Programs\Raabe Software\MMX\15\imageres.dll    NAME NOT FOUND    Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a
15:14:40,1733848    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\SysWOW64\imageres.dll    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:40,1736702    MMX_SDV.exe    7608    CreateFile    C:\Windows\SysWOW64\pl-PL\imageres.dll.mui    NAME NOT FOUND    Desired Access: Generic Read, Disposition: Open, Options: , Attributes: n/a, ShareMode: Read, Delete, AllocationSize: n/a
15:14:40,1737425    MMX_SDV.exe    7608    CreateFile    C:\Windows\System32\pl-PL\imageres.dll.mui    NAME NOT FOUND    Desired Access: Generic Read, Disposition: Open, Options: , Attributes: n/a, ShareMode: Read, Delete, AllocationSize: n/a
15:14:40,1738264    MMX_SDV.exe    7608    CreateFile    C:\Windows\SysWOW64\pl\imageres.dll.mui    NAME NOT FOUND    Desired Access: Generic Read, Disposition: Open, Options: , Attributes: n/a, ShareMode: Read, Delete, AllocationSize: n/a
15:14:40,1738828    MMX_SDV.exe    7608    CreateFile    C:\Windows\System32\pl\imageres.dll.mui    NAME NOT FOUND    Desired Access: Generic Read, Disposition: Open, Options: , Attributes: n/a, ShareMode: Read, Delete, AllocationSize: n/a
15:14:40,1739956    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\SysWOW64\en-US\imageres.dll.mui    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:

 

 

Share this post


Link to post

What is is that makes is a structured difference viewer?

Looking the screenshot in the first post I don't see much structure there. I mean, the diff tool I use would have picked up on the fact that two of the lines in the original file had been embedded into a block in the changed file.

Share this post


Link to post
48 minutes ago, Anders Melander said:

What is is that makes is a structured difference viewer?

The stucture relates to the class and its methods as seen in the tree view to the left. F.i. if only the order of methods in a class changes, be it in the interface or the implementation, the structured difference would rate that as equal. Inside each method the diff is the same as a simple line diff.

  • Thanks 1

Share this post


Link to post
2 hours ago, Anders Melander said:

Compile it with madExcept and run.

If the error just could be reproduced here in my environment, I would do.

 

Nevertheless, I will add madExcept in the next release.

  • Like 1

Share this post


Link to post
2 hours ago, egroups said:

How I can setup/activate this feature?

Usually the MMX setup installs the app and also registers it into the Delphi IDE. You only have to select it as the default viewer.

image.thumb.png.0e64f442553fbebed2257cb6c4346424.png

  • Like 1

Share this post


Link to post

Can I call this structured diff viewer with command line arguments?  I want to integrate it as an external diff viewer in tortoiseSVN ...

 

Also, the menu item "help->user manual" does nothing...

  • Like 1

Share this post


Link to post
29 minutes ago, A.M. Hoornweg said:

Can I call this structured diff viewer with command line arguments?

Yes. Command line options are:

-S select structural diff (default)

-F select file diff

-D:<Delphi version> selects language mode. Accepted values: 10, 10.1 .. 10.5 (yeah, I know) for Seattle to Alexandria

<left file>

<right file>

 

36 minutes ago, A.M. Hoornweg said:

Also, the menu item "help->user manual" does nothing...

Indeed, that is an oversight. It tries to open mmsdvmanual.pdf, but I couldn't get a copy from Gerrit as I had hoped. I will disable that entry in the next release until some documentation is available.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×