Author |
Topic  |
|
SonicMouse
New Member

9 Posts |
Posted - Jul 12 2016 : 01:26:46 AM
|
Hi, years ago I posted about a bug that freezes MSVC++ 6.0.
I stopped updating VA because the freezes became worse over every update. Well, it's 3 years later and I decided to update to the latest version and the freezes are still happening and are just as bad if not worse.
It seems to happen after a create a new class, then save... then mouse-over any keyword.
So, I decided to figure out where it freezes and see why. This is what I found...
Take a look at this screen cap:

It always hangs here.. Every time the first conditional (at 0x...54C5) falls through . This is in the VA_X.dll
I can kill the freeze if at line 0x...54E9, i invert the zero flag, breaking the loop where it then moves on to the InterlockedIncrement() code. MSVC and VAX continues to work just fine after that.
I don't really ever use Enter/LeaveCriticalSection API, but I am assuming you are using as a Mutex-type object here and waiting for the flag at 0x...54E4 to turn to zero. And in this case, it never turns to zero causing the entire MSVC++6 IDE to freeze until "End-Task"
Maybe you guys could find this section of code where you enter/leave critical sections twice in one loop and move on to InterlockedIncrement code and put some sort of time out? Personal opinion: I think you should always have a time out when waiting on a Mutex/Semaphore/Event...
I hope this helps you all figure out this elusive bug that I have been dealing with for years (I am so used to doing this: Add Class, End-Task on MSVC, Restart MSVC, that it's second nature to me now)
-andy.
------------------------------------------------ License: contact@*****.com (1-user license) Support ends 2017.06.23 VA_X.dll file version 10.9.2102.0 built 2016.06.02 MSDev.exe version 6.0.9782.2 Devshl.dll version 6.0.9782.0 Devedit.pkg version 6.0.9782.0 Font: Courier New 13 (pixels) Comctl32.dll version 5.82.7601.18837 Windows 7 6.1 Build 7601 Service Pack 1 2 processors (x86-64, WOW64) Language info: 1252, 0x409
Platform: Win32 (x86) Stable Includes: C:\Program Files (x86)\Microsoft Visual Studio\VC98\INCLUDE; C:\Program Files (x86)\Microsoft Visual Studio\VC98\MFC\INCLUDE; C:\Program Files (x86)\Microsoft Visual Studio\VC98\ATL\INCLUDE; C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include; C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include\mfc; C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include\atl; C:\Program Files (x86)\Microsoft Speech SDK 5.1\include;
Other Includes:
Stable Source Directories: C:\Program Files (x86)\Microsoft Visual Studio\VC98\MFC\SRC; C:\Program Files (x86)\Microsoft Visual Studio\VC98\MFC\INCLUDE; C:\Program Files (x86)\Microsoft Visual Studio\VC98\ATL\INCLUDE; C:\Program Files (x86)\Microsoft Visual Studio\VC98\CRT\SRC; C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\src\mfc; C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\src\crt; C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\src\atl;
|
Edited by - SonicMouse on Jul 12 2016 03:06:38 AM |
|
accord
Whole Tomato Software
    
United Kingdom
3287 Posts |
|
SonicMouse
New Member

9 Posts |
Posted - Jul 12 2016 : 10:54:46 AM
|
Yes, I'll do that, but can't you find this code in the VA_X.dll and put some sort of timeout? It shouldn't be too hard to find.
Yes, that's probably a "band-aid" fix.. but waiting on a semaphore should already use some sort of timeout mechanism anyway.
The next thing I will do is just patch the VA_X dll to always jump at 0x...54C5. Because right now, every time it freezes, I break the freeze and VAX goes back to working as normal and nothing is different. |
 |
|
sean
Whole Tomato Software
    
USA
2817 Posts |
Posted - Jul 12 2016 : 1:21:18 PM
|
We found the other thread where you reported a freeze: http://forums.wholetomato.com/forum/topic.asp?TOPIC_ID=11578
The link to the dump you captured for us at that time did not work. We received no further response from you and no case was opened for the problem you reported.
In the future, you don't need to purchase a renewal to see if a problem has been addressed since VA will run in trial mode for several days if your license is long expired.
If you are able to capture a minidump of the hang and make it available to us, we might be able to address the root cause rather than simply disable locks by adding a timeout.
Does the Add Class hang occur in all of your projects or are you only experiencing it in the large project you mentioned in the other thread?
|
 |
|
SonicMouse
New Member

9 Posts |
Posted - Jul 12 2016 : 3:57:36 PM
|
quote: Originally posted by seanDoes the Add Class hang occur in all of your projects or are you only experiencing it in the large project you mentioned in the other thread?
All projects, whether they are new, old, 10 lines or 300,000 lines. |
 |
|
SonicMouse
New Member

9 Posts |
Posted - Jul 12 2016 : 3:58:23 PM
|
OK -- just submitted the dump to your website. |
 |
|
sean
Whole Tomato Software
    
USA
2817 Posts |
Posted - Jul 12 2016 : 4:26:58 PM
|
Received and looking into it. |
 |
|
sean
Whole Tomato Software
    
USA
2817 Posts |
Posted - Jul 12 2016 : 5:05:04 PM
|
Thanks for sending in the dump -- I see the deadlock. It will be fixed in the next release. case=98643 |
 |
|
SonicMouse
New Member

9 Posts |
Posted - Jul 12 2016 : 5:14:26 PM
|
Thanks so much. Looking forward to the update. |
 |
|
sean
Whole Tomato Software
    
USA
2817 Posts |
Posted - Jul 18 2016 : 10:37:49 PM
|
This was case=98643.
case=98643 is fixed in build 2107. |
 |
|
|
Topic  |
|