Whole Tomato Software Forums
Whole Tomato Software Forums
Main Site | Profile | Register | Active Topics | Members | Search | FAQ
User name:
Password:
Save Password
Forgot your password?

 All Forums
 Visual Assist
 Technical Support
 VAX freezing in Visual Studio 2022
 New Topic  Reply to Topic
 Printer Friendly
Author Previous Topic Topic Next Topic  

foxmuldr
Tomato Guru

USA
445 Posts

Posted - Nov 03 2025 :  11:03:33 AM  Show Profile  Reply with Quote
I have a C/C++ project where I'm including libsodium in a particular source file (let's call it main.cpp).

In main.cpp, I #include libsodium with a single line:
#include "..\libsodium\include\sodium.h"


Which is this sodium.h include file:
#ifndef sodium_H
#define sodium_H

#include "sodium/version.h"

#include "sodium/core.h"
#include "sodium/crypto_aead_aes256gcm.h"
#include "sodium/crypto_aead_aegis128l.h"
#include "sodium/crypto_aead_aegis256.h"
#include "sodium/crypto_aead_chacha20poly1305.h"
#include "sodium/crypto_aead_xchacha20poly1305.h"
#include "sodium/crypto_auth.h"
#include "sodium/crypto_auth_hmacsha256.h"
#include "sodium/crypto_auth_hmacsha512.h"
#include "sodium/crypto_auth_hmacsha512256.h"
#include "sodium/crypto_box.h"
#include "sodium/crypto_box_curve25519xsalsa20poly1305.h"
#include "sodium/crypto_core_hsalsa20.h"
#include "sodium/crypto_core_hchacha20.h"
#include "sodium/crypto_core_salsa20.h"
#include "sodium/crypto_core_salsa2012.h"
#include "sodium/crypto_core_salsa208.h"
#include "sodium/crypto_generichash.h"
#include "sodium/crypto_generichash_blake2b.h"
#include "sodium/crypto_hash.h"
#include "sodium/crypto_hash_sha256.h"
#include "sodium/crypto_hash_sha512.h"
#include "sodium/crypto_kdf.h"
#include "sodium/crypto_kdf_hkdf_sha256.h"
#include "sodium/crypto_kdf_hkdf_sha512.h"
#include "sodium/crypto_kdf_blake2b.h"
#include "sodium/crypto_kx.h"
#include "sodium/crypto_onetimeauth.h"
#include "sodium/crypto_onetimeauth_poly1305.h"
#include "sodium/crypto_pwhash.h"
#include "sodium/crypto_pwhash_argon2i.h"
#include "sodium/crypto_scalarmult.h"
#include "sodium/crypto_scalarmult_curve25519.h"
#include "sodium/crypto_secretbox.h"
#include "sodium/crypto_secretbox_xsalsa20poly1305.h"
#include "sodium/crypto_secretstream_xchacha20poly1305.h"
#include "sodium/crypto_shorthash.h"
#include "sodium/crypto_shorthash_siphash24.h"
#include "sodium/crypto_sign.h"
#include "sodium/crypto_sign_ed25519.h"
#include "sodium/crypto_stream.h"
#include "sodium/crypto_stream_chacha20.h"
#include "sodium/crypto_stream_salsa20.h"
#include "sodium/crypto_stream_xsalsa20.h"
#include "sodium/crypto_verify_16.h"
#include "sodium/crypto_verify_32.h"
#include "sodium/crypto_verify_64.h"
#include "sodium/randombytes.h"
#include "sodium/randombytes_internal_random.h"
#include "sodium/randombytes_sysrandom.h"
#include "sodium/runtime.h"
#include "sodium/utils.h"

#ifndef SODIUM_LIBRARY_MINIMAL
# include "sodium/crypto_box_curve25519xchacha20poly1305.h"
# include "sodium/crypto_core_ed25519.h"
# include "sodium/crypto_core_ristretto255.h"
# include "sodium/crypto_scalarmult_ed25519.h"
# include "sodium/crypto_scalarmult_ristretto255.h"
# include "sodium/crypto_secretbox_xchacha20poly1305.h"
# include "sodium/crypto_pwhash_scryptsalsa208sha256.h"
# include "sodium/crypto_stream_salsa2012.h"
# include "sodium/crypto_stream_salsa208.h"
# include "sodium/crypto_stream_xchacha20.h"
#endif

#endif


The problem is, each time I go to that main.cpp file with VAX enabled, it pauses for about 15 seconds and then continues. The UI is frozen, and if I start trying to click on things I get the not responding mouse pointer, and eventually the frosted window indicating it's not responding, and finally if I keep clicking, the attached image.

If I disable VAX then I'm able to go back and forth just fine. I'm reasonably sure it has to do with checking all those files to see if they've changed since the last time that file was opened.

Is there a way to add that folder to the do-not-rescan list, or some such?

--
Rick C. Hodgin




Edited by - foxmuldr on Nov 03 2025 11:04:42 AM

feline
Whole Tomato Software

United Kingdom
19299 Posts

Posted - Nov 03 2025 :  11:28:18 AM  Show Profile  Reply with Quote
Is this an open source library I can test on here? Or something that only you have access to?

My first thought would be to add the library to the stable include directory list, by adding it to:

Project properties -> VC++ Directories -> Include Directories

directories included here are automatically added to VA's stable include directory list, assuming you are using:

VA Options -> C/C++ Directories -> Platform = Project defined

and not a custom directory list.

VA doesn't re-scan stable include directories.

The problem with this answer is that VA is designed not to re-scan files it has already scanned once, unless they have changed. So, assuming these files are not changing on the hard drive, getting a new last modified date / time, once VA has scanned then the once, we should not need to re-scan them again. So I am not actually sure if this will have any effect or not.

zen is the art of being at one with the two'ness
Go to Top of Page

foxmuldr
Tomato Guru

USA
445 Posts

Posted - Nov 03 2025 :  11:48:03 AM  Show Profile  Reply with Quote
Libsodium is a well-known public encryption library:
https://github.com/jedisct1/libsodium/
https://github.com/jedisct1/libsodium/releases/download/1.0.20-RELEASE/libsodium-1.0.20-msvc.zip
This file: libsodium-1.0.20-msvc.zip/libsodium/include/sodium.h

It's also available with vcpkg (https://github.com/Microsoft/vcpkg.git):
vcpkg install libsodium:x86-windows

Assuming vcpkg is installed at c:\github\vcpkg\:
C:\github\vcpkg\installed\x86-windows\include\sodium.h

--
Rick C. Hodgin
Go to Top of Page

foxmuldr
Tomato Guru

USA
445 Posts

Posted - Nov 03 2025 :  11:49:49 AM  Show Profile  Reply with Quote
quote:
Originally posted by feline
The problem with this answer is that VA is designed not to re-scan files it has already scanned once, unless they have changed. So, assuming these files are not changing on the hard drive, getting a new last modified date / time, once VA has scanned then the once, we should not need to re-scan them again. So I am not actually sure if this will have any effect or not.



Then I'm not sure what it is. It only happens with VAX enabled.

Is there a diagnostic / logging mode I can enable which would log which internal algorithms in VAX are being called and which ones are consuming the most time? It's literally unusable with VAX right now, so I've had to disable it to complete this current task.

--
Rick C. Hodgin
Go to Top of Page

foxmuldr
Tomato Guru

USA
445 Posts

Posted - Nov 03 2025 :  12:59:51 PM  Show Profile  Reply with Quote
I created a second cpp file with those entries, and it's not lagging. I'm going to add bits in one by one until it starts lagging to figure out what's causing it.

--
Rick C. Hodgin
Go to Top of Page

foxmuldr
Tomato Guru

USA
445 Posts

Posted - Nov 03 2025 :  1:50:29 PM  Show Profile  Reply with Quote
I've added everything in the original source file to the second one and no pauses. So, I'm truly at a loss. I'm going to try cutting all, re-pasting all, etc., to see if I can get it to go away.

--
Rick C. Hodgin

Edited by - foxmuldr on Nov 03 2025 2:11:49 PM
Go to Top of Page

foxmuldr
Tomato Guru

USA
445 Posts

Posted - Nov 03 2025 :  5:38:59 PM  Show Profile  Reply with Quote
I ultimately asked Claude about it, and that AI suggested I exit Visual Studio, delete my .vs folder, restart, and that fixed it. So apparently it was something inside of VS working with VAX, because disabling VAX would prevent it from happening on that file.

Thank you, feline.

--
Rick C. Hodgin
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19299 Posts

Posted - Nov 04 2025 :  08:08:29 AM  Show Profile  Reply with Quote
At a guess, based on your experiences, some form of clash between the VA and IDE intellisense parsers, perhaps involving some form of corruption in the IDE intellisense database. Definitely a rare problem these days, but not unheard of.

zen is the art of being at one with the two'ness
Go to Top of Page

foxmuldr
Tomato Guru

USA
445 Posts

Posted - Nov 04 2025 :  1:00:32 PM  Show Profile  Reply with Quote
Hasn't reproduced. Thank you again.

--
Rick C. Hodgin
Go to Top of Page

foxmuldr
Tomato Guru

USA
445 Posts

Posted - Dec 09 2025 :  12:24:43 PM  Show Profile  Reply with Quote
I do still see this periodically. It seems to come when it's popping up the auto-completion. There are times when it will literally hang for 15 or more seconds. It eventually comes back, but during that time it is stuck. It will sometimes do this dribble effect too, so it's hangs for 15 seconds, works until I hit another key, then it will hang for like 5 to 10 seconds, then I hit another key and it will hang for 3 seconds, and then after that it just works.

Does anyone else see that?
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19299 Posts

Posted - Dec 10 2025 :  07:18:25 AM  Show Profile  Reply with Quote
I would suggest disabling IDE intellisense, to see if this has any effect on this:

IDE tools menu -> Options -> Text Editor -> C/C++ -> Advanced -> IntelliSense -> Disable IntelliSense = True

it is rare, but I have seen problems where if the IDE intellisense sees an edit on a widely used header file, this can cause a lot of re-parsing, and thus a lot of system load and IDE slow down. Knowing if disabling IDE intellisense has an effect would tell us something.

Also look for CPU or system load from the devenv.exe process, to see if the hangs seem to be associated with CPU or IO spikes.

zen is the art of being at one with the two'ness
Go to Top of Page

foxmuldr
Tomato Guru

USA
445 Posts

Posted - Dec 12 2025 :  08:21:11 AM  Show Profile  Reply with Quote
quote:
Originally posted by feline

IDE tools menu -> Options -> Text Editor -> C/C++ -> Advanced -> IntelliSense -> Disable IntelliSense = True

it is rare, but I have seen problems where if the IDE intellisense sees an edit on a widely used header file, this can cause a lot of re-parsing, and thus a lot of system load and IDE slow down. Knowing if disabling IDE intellisense has an effect would tell us something



Will try that. Thank you.
Go to Top of Page

foxmuldr
Tomato Guru

USA
445 Posts

Posted - Dec 18 2025 :  08:52:25 AM  Show Profile  Reply with Quote
Did not make a difference. Still freezing periodically, randomly, but once it freezes once it's like it's in this debilitated state where every navigation is slower than normal, jerky, has pauses. I have to exit, delete my .vs folder, and come back in to get it to work right again. According to Claude it's a known issue with VS2022 and appears unrelated to VAX.
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19299 Posts

Posted - Dec 18 2025 :  10:01:42 AM  Show Profile  Reply with Quote
I would be curious to know if Claude can defend / explain that claim.

From memory and experience, the only real time I would expect this sort of behaviour is someone, VA or the IDE, ending up with a corrupt symbol database. This should be a VERY rare problem, and disabling IDE intellisense should eliminate the IDE intellisense symbol database as a factor. Plus I would also expect it to be solution specific, if the trigger is something inside the code tripping up our parser that badly.

Or, equally rarely, a problem with VA, or another extension. There is a known problem with a couple of extensions by Devart that interact badly with VA, and you can get random problems showing up, but the problems normally end up with a crash.

Deleting the .vs folder is an interesting clue, and sounds like a bug that has just been reported in VS2026, that we are currently working on. Can you please email me about this at:

[email protected]

and I can try sending you an internal build that has a possible fix for the VS2026 bug, in case it helps you.

zen is the art of being at one with the two'ness
Go to Top of Page

foxmuldr
Tomato Guru

USA
445 Posts

Posted - Dec 23 2025 :  09:25:18 AM  Show Profile  Reply with Quote
I've switched to Visual Studio 2026 against my better judgement :-)
So far no freezes at all. I lost my blue color though and it's harder to read, but it is faster and it appears to work.
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19299 Posts

Posted - Dec 30 2025 :  07:52:53 AM  Show Profile  Reply with Quote
I am glad it is faster and no freezes.

I don't know what you mean about loosing your blue colour. Also, what is harder to read?

zen is the art of being at one with the two'ness
Go to Top of Page

foxmuldr
Tomato Guru

USA
445 Posts

Posted - Jan 08 2026 :  2:57:24 PM  Show Profile  Reply with Quote
Sadly, this is still happening. It seems to come and go. The past couple days it's frozen 10 times during normal development, each time for 10+ seconds. I've coded other days / weeks where it hasn't frozen once.

Do you have any ideas what it could be?

Disable IntelliSense = True -- I've done this.
I've also tried disabling VAX, and it still does it.

When VAX is disabled does are you still actually subscribed and receiving internal calls, just then immediately returning when in disabled mode? Or does it unsubscribe and then later resubscribe when re-enabled?

I don't want to have to uninstall VAX to see if that's the actual issue because other users are reporting the same issue:
https://developercommunity.visualstudio.com/t/Visual-Studio-2022-and-2026-Still-Hangin/11026005

--
Rick C. Hodgin
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19299 Posts

Posted - Jan 09 2026 :  07:06:13 AM  Show Profile  Reply with Quote
The normal assumption is an intellisense parser, and history suggests this happens due to the IDE intellisense parser when you have edited a widely used header file, and it needs to reparse a lot of files. But with what you have done, that seems to be ruled out.

Are you seeing any form of listboxes when editing code? If so this would tell us that you haven't successfully disabled everything.

Is there any form of pattern to the freezes?

I would try running Process Monitor

https://learn.microsoft.com/en-us/sysinternals/downloads/procmon

Right click on the column headers, and turn On the "Process Performance -> CPU History" column, and make it very wide, to get a nice bit if history. Then when the problem next happens you have some form of performance logging to check, to see if there was a CPU usage spike.

There will be plenty of other ways of tracking / logging system performance and load, but this is the first one that came to mind. Basically you need some idea of what is happening when the freeze happens, and if it is paired with a CPU, IO or other spike.

If VA was active then I would also suggest you try disabling anti-virus, or excluding VA's symbol database from being scanned. It is very rare, but I have seen anti-virus and similar tools cause odd performance problems when they scan the VA symbol database and slow down reading / writing.

Do you have enough free hard drive space?

If this doesn't help, try running a new test profile in VS2026. You do this by running the command:

"C:\Program Files\Microsoft Visual Studio\18\Professional\Common7\IDE\devenv.exe" /RootSuffix FreezeTest

Obviously use the correct path for your edition of VS2026. VA should not be installed in this test profile, unless you have done something strange. So this gives you a VA free test space to compare.

zen is the art of being at one with the two'ness
Go to Top of Page
  Previous Topic Topic Next Topic  
 New Topic  Reply to Topic
 Printer Friendly
Jump To:
© 2023 Whole Tomato Software, LLC Go To Top Of Page
Snitz Forums 2000