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
 va_x empty error message
 New Topic  Reply to Topic
 Printer Friendly
Next Page
Author Previous Topic Topic Next Topic
Page: of 2

jameso
Ketchup Master

United Kingdom
83 Posts

Posted - Feb 02 2007 :  09:45:15 AM  Show Profile  Reply with Quote
Hi

Happily editing code, I got a messagebox with MB_ICONWARNING | MB_OK, no text, and a caption of va_x. Here are the call stacks in VS2005 for the threads with VA_X in...

> ntdll.dll!_KiFastSystemCallRet@0()
user32.dll!_NtUserWaitMessage@0() + 0xc bytes
user32.dll!_InternalDialogBox@24() + 0xb6 bytes
user32.dll!_SoftModalMessageBox@4() + 0x677 bytes
user32.dll!_MessageBoxWorker@4() + 0x175 bytes
user32.dll!_MessageBoxTimeoutW@24() + 0x7a bytes
user32.dll!_MessageBoxTimeoutA@24() + 0x9c bytes
user32.dll!_MessageBoxExA@20() + 0x1b bytes
user32.dll!_MessageBoxA@16() + 0x45 bytes
0132ac49()
VA_X.dll!1ee8b23f()
[Frames below may be incorrect and/or missing, no symbols loaded for VA_X.dll]
ntdll.dll!_RtlNtStatusToDosError@4() + 0x2f bytes
kernel32.dll!_BaseSetLastNTError@4() + 0x17 bytes
kernel32.dll!_FindResourceA@12() + 0x26a1b bytes
VA_X.dll!1ef62b4c()
VA_X.dll!1eea144a()
VA_X.dll!1ee8b2e6()
VA_X.dll!1ee7b081()
ntdll.dll!__except_handler3() + 0x93 bytes
ntdll.dll!ExecuteHandler2@20() + 0x26 bytes
ntdll.dll!ExecuteHandler@20() + 0x24 bytes
ntdll.dll!_KiUserExceptionDispatcher@8() + 0xe bytes
0012cd54()


--- New thread

> ntdll.dll!_KiFastSystemCallRet@0()
ntdll.dll!_ZwWaitForSingleObject@12() + 0xc bytes
ntdll.dll!_RtlpWaitForCriticalSection@4() + 0x8c bytes
ntdll.dll!_RtlEnterCriticalSection@4() + 0x46 bytes
VA_X.dll!1ed497c1()
[Frames below may be incorrect and/or missing, no symbols loaded for VA_X.dll]
ntdll.dll!_ZwClose@4() + 0xc bytes
kernel32.dll!_CloseHandle@4() + 0x44 bytes
VA_X.dll!1ee82bc1()
VA_X.dll!1ed1bb92()
ntdll.dll!_RtlAllocateHeap@12() + 0x117 bytes
msenv.dll!CExpansionManager::GetTemplateByShortcut() + 0x18f bytes


--- New thread

> ntdll.dll!_KiFastSystemCallRet@0()
ntdll.dll!_NtDelayExecution@8() + 0xc bytes
kernel32.dll!_SleepEx@8() + 0x51 bytes
kernel32.dll!_Sleep@4() + 0xf bytes
VA_X.dll!1ed8b8db()
[Frames below may be incorrect and/or missing, no symbols loaded for VA_X.dll]
kernel32.dll!_GetCurrentThreadId@0()
09fd3f40()
VA_X.dll!1ed16dc6()
kernel32.dll!_GetCurrentThreadId@0()
211fcf00()
VA_X.dll!1ed8c0cd()
ntdll.dll!_RtlpWorkerCallout@16() + 0x65 bytes
ntdll.dll!_RtlpExecuteWorkerRequest@12() + 0x1a bytes
ntdll.dll!_RtlpApcCallout@16() + 0x11 bytes
ntdll.dll!_RtlpWorkerThread@4() + 0x16ebc bytes
kernel32.dll!_BaseThreadStart@8() + 0x37 bytes



Here's about:

VA_X.dll file version 10.3.1544.0 built 2007.01.10
Licensed to:
VA X: [snip] (1-user license) Support ends 2007.03.07
VA.NET 7.1: [snip] (1-user license)
VAOpsWin.dll version 1.3.4.2
VATE.dll version 1.0.5.6
DevEnv.exe version 8.0.50727.42
msenv.dll version 8.0.50727.42
Font: Consolas 11(Pixels)
Comctl32.dll version 6.0.2900.2982
Windows XP 5.1 Build 2600 Service Pack 2
2 processors

Platform: Win32
Stable Includes:
C:\\Program Files\\Microsoft Visual Studio 8\\VC\\include;
C:\\Program Files\\Microsoft Visual Studio 8\\VC\\atlmfc\\include;
C:\\Program Files\\Microsoft Visual Studio 8\\VC\\PlatformSDK\\include;
C:\\Program Files\\Microsoft.NET\\SDK\\v2.0\\include;
[snip]

Library Includes:
C:\\Program Files\\Microsoft Visual Studio 8\\VC\\atlmfc\\src\\mfc;
C:\\Program Files\\Microsoft Visual Studio 8\\VC\\atlmfc\\src\\mfcm;
C:\\Program Files\\Microsoft Visual Studio 8\\VC\\atlmfc\\src\\atl;
C:\\Program Files\\Microsoft Visual Studio 8\\VC\\crt\\src;




feline
Whole Tomato Software

United Kingdom
19015 Posts

Posted - Feb 02 2007 :  12:58:08 PM  Show Profile  Reply with Quote
That is very odd. Thank you for the very complete list of details

Are you having any other problems, or strange effects?
Have you been running VA 1544 for a while now, or have you only just installed it?
Have you seen this message box before?
Do you have any other plugin's installed?

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

jameso
Ketchup Master

United Kingdom
83 Posts

Posted - Feb 02 2007 :  2:44:12 PM  Show Profile  Reply with Quote
Yes, lots of other low-level wierdness. Specifically
- Autocomplete working patchily
- alt-g going to headers, rather than implementation
- underlining 'incorrect' symbols
- function definitions disappearing or font corruption while editing the signature (not refactoring, just editing)

I've been using 1544 since the day it was released. It seemed fairly broken to me when I installed it, but poking around I found some logs saying some of the index files were corrupt, so I toasted all the VAX cache & db files and the NCB and it was much better - at least for a while

It's the first time I've seen that message box

I have the MySQL db plugin installed, but I've not used it for a couple of months and the database wasn't running. It didn't appear in any of the call stacks.

I did take a minidump, so I can probably pull out some other details if they'd be helpful, but that won't be until Monday morning

Cheers

James
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19015 Posts

Posted - Feb 02 2007 :  3:16:04 PM  Show Profile  Reply with Quote
I am not sure how much of this is related to the error message, perhaps none of it.

alt-g going to headers and not implementation, someone posted about exactly the same problem a day or so ago. They thought they were running VA 1544 but were actually running 1543. There is a known bug in 1543 if you have a lot of "using namespace foo" lines in a cpp file alt-g will only jump to the header file. This has been fixed in 1544.

When you next have access to the problem machine can you pick one or two of these problems and we will start there, trying to reproduce, pin down, and hopefully fix them.

1544 generally speaking seems to be a solid release, and you should not be having these sorts of problems.

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

jameso
Ketchup Master

United Kingdom
83 Posts

Posted - Feb 05 2007 :  03:49:55 AM  Show Profile  Reply with Quote
OK, back at work (I love Mondays)

I can't reproduce any of the problems this quickly after a clean boot, but I'll keep an eye out and follow up when they happen.

I don't think I've been affected by the namespace problem - we only have a handful of namespaces and hardly use 'using namespace' like that.

vc8\\errors.log has 300 lines from about the time I had the error message, the unique values are

Exception: EDC::2314 2/2/2007 14:31:33 0xce8
Exception: EDC2::2194 2/2/2007 14:31:39 0xce8
Exception: MP::386 2/2/2007 14:31:52 0xce8
Exception: EDC2::2194 2/2/2007 14:31:53 0xce8
Exception: PT::342 2/2/2007 14:31:59 0x778
Exception: VAP::1089 2/2/2007 14:32:03 0x8c4
Exception: MP::386 2/2/2007 14:34:03 0x8c4
Exception: PT::342 2/2/2007 14:34:04 0x778
Exception: VAP::1089 2/2/2007 14:34:19 0x8c4
Exception: ATT:519 2/2/2007 14:34:59 0xce8
Exception: MP::386 2/2/2007 14:46:36 0x100
Exception: MP::386 2/2/2007 14:47:31 0x504
Exception: FDC::570 2/2/2007 14:47:51 0xce8

Between 14:33:55 and 14:35:43 there were 212 exceptions logged. There's then an 11 minute gap (presumably while I was attaching a debugging and looking at the call stacks, before there were another 65 execptions (when I detached the debugger)

There's some stuff in VAX\\startup.log too, but nothing before I attached the debugger. Let me know if that'd be helpful

James

Go to Top of Page

jameso
Ketchup Master

United Kingdom
83 Posts

Posted - Feb 05 2007 :  05:36:42 AM  Show Profile  Reply with Quote
OK, in file A.cpp, there's a line

Fn(....)

B.h has the declaration
B.cpp has the implementation

alt-g on the call goes to the header. F12 goes to the implementation (from both A.cpp and B.h)

There are no "using namespace x" statements in the A.cpp, though there are several functions defined in a namespace.

A.cpp, B.h and B.cpp are all in the same project in a much larger solution

This is during debugging, but there are a couple of EnC changes pending. However, stopping the debug session and recompiling makes no difference.

Anything else I should look for?

James
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19015 Posts

Posted - Feb 05 2007 :  2:46:25 PM  Show Profile  Reply with Quote
When you are in the header, on the declaration of this function, what happens when you press alt-g? You should be taken to the implementation.

Is this function overloaded?
Does alt-o swap you between the header and cpp files correctly?
Does this alt-g problem still show up if you restart the IDE?

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

jameso
Ketchup Master

United Kingdom
83 Posts

Posted - Feb 05 2007 :  2:50:11 PM  Show Profile  Reply with Quote
Alt-g still doesn't work in the header, though F12 does
The function isn't overloaded
Alt-O works
It's persistent across restarts of the IDE
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19015 Posts

Posted - Feb 05 2007 :  2:55:28 PM  Show Profile  Reply with Quote
This suggests VA is having problems with this cpp file.
Is the class inside a namespace? This should not matter in 1544, but it might.
In the cpp file does alt-m list all of the methods in the file?
Are you seeing any problems with next and previous scope?

I have seen a problem where code like:

static void someFunction()
{
#if 0
    {
        {
#endif
}


confuses VA, due to the mismatched brackets. But this tends to effect several features, not just alt-g.

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

jameso
Ketchup Master

United Kingdom
83 Posts

Posted - Feb 06 2007 :  04:49:28 AM  Show Profile  Reply with Quote
The function isn't in a class - the signature is

BOOL Fn(HWND, LPSTR, int, char)

Alt-m works just fine (and, by the way, I really, really like that feature)

I can move around in the CPP without any problems, however, selecting the definition of one of the functions declared in the header and hitting alt-g goes to the header. In case that's not clear:

Alt-O switches correctly between B.CPP and B.H
In B.CPP, alt-g on a call to a function defined in B.CPP which isn't declared in B.H goes to the function definition (correctly)
In B.CPP, alt-g on a call to a function defined in B.CPP which is declared in B.H goes to the declaration in B.H (incorrectly)

B.H isn't directly included in B.CPP - I've added it on the off chance this might fix it. (After a restart, it doesn't seem to have helped)

James
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19015 Posts

Posted - Feb 06 2007 :  07:31:56 AM  Show Profile  Reply with Quote
So far I cannot reproduce any problems with alt-g. using VS2003 and VA 1544 I have a pair of files, "bug_alt_g.cpp" and "bug_alt_g.h"

the cpp file #includes the .h file

in the .h file I have the code:

void headerDeclatationOne();
void headerDeclatationTwo(int a, int b, char c);


and in the cpp file I have the code:

void headerDeclatationOne()
{
}

void headerDeclatationTwo(int a, int b, char c)
{
}

BOOL noDeclarationOne()
{
	return TRUE;
}

BOOL noDeclarationTwo(HWND a, LPSTR b, int c, char d)
{
	return TRUE;
}

static void testCalling()
{
	headerDeclatationOne();
	headerDeclatationTwo(0, 0, 0);
	noDeclarationOne();
	noDeclarationTwo(0, 0, 0, 0);
}


using alt-g on the 4 function calls, I get the alt-g menu for the first 2 items, and I am taken directly to the functions on the second two. All of this seems quite correct, and exactly as I would expect. Can you try the same tests on your machine and see what results you get?

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

jameso
Ketchup Master

United Kingdom
83 Posts

Posted - Feb 06 2007 :  07:51:14 AM  Show Profile  Reply with Quote
Better than that, I can reproduce the bug :)

I'm using VS2005.

I created a new Win32 console project and added A.cpp and A.h to it.
A.h contains:

----
void headerDeclatationOne();
void headerDeclatationTwo(int a, int b, char c);
----

a.cpp contains (note some minor type changes):

----

#include "stdafx.h"
void headerDeclatationOne()
{
}

void headerDeclatationTwo(int a, int b, char c)
{
}

bool noDeclarationOne()
{
return true;
}

bool noDeclarationTwo(void* a, char * b, int c, char d)
{
return true;
}

static void testCalling()
{
headerDeclatationOne();
headerDeclatationTwo(0, 0, 0);
noDeclarationOne();
noDeclarationTwo(0, 0, 0, 0);
}

----

Repro.cpp contains:

----
#include "stdafx.h"

#include "a.h"

int _tmain(int argc, _TCHAR* argv[])
{
headerDeclatationOne();
headerDeclatationTwo(1, 1, 1);
return 0;
}

----

Everything else is untouched.

I did "Build Solution" (ctrl-shift-b) then tried to alt-g from the calls in _tmain to the definitions, but it went straight to the header. From A.cpp, headerDeclatationOne and headerDeclatationTwo go to the header, noDeclarationOne and noDeclarationTwo go to the function definitions.

I can zip up the solution & mail it if I've been that unclear

James
Go to Top of Page

jameso
Ketchup Master

United Kingdom
83 Posts

Posted - Feb 06 2007 :  07:55:46 AM  Show Profile  Reply with Quote
I unloaded & reloaded the solution & it was still reproducable. I then added

#include "a.h"

to a.cpp and rebuilt

Now, alt-g on one of the references to the function defined in the header presents a floating menu pointing at the cpp and the h (in that order), which seems correct to me.

James
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19015 Posts

Posted - Feb 06 2007 :  10:28:56 AM  Show Profile  Reply with Quote
quote:
Originally posted by jameso

Better than that, I can reproduce the bug :)

I can zip up the solution & mail it if I've been that unclear


Please can you submit the zip via the form:

http://www.wholetomato.com/support/contact.asp

including this thread ID or URL in the description, so we can match it up.

I have tried this several different ways, in two different test projects using VS2005 and VA 1544 and I simply cannot reproduce this problem.

Your description seems quite clear to me, and I do not see what I am doing differently.

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

jameso
Ketchup Master

United Kingdom
83 Posts

Posted - Feb 06 2007 :  10:46:49 AM  Show Profile  Reply with Quote
Done

James
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19015 Posts

Posted - Feb 06 2007 :  11:26:38 AM  Show Profile  Reply with Quote
The good news is that I have the test projects, thank you for this. The interesting news is this:



I have tested the basic source only project on 3 different machines, and I get the same results every time. I have rebuild VA's symbol database, deleted the IDE generated ncb file, and neither action has any effect.

I am opening VS2005, loading the solution, and then opening the single file "repo.cpp" from Solution Explorer. Once VA has finished parsing (enhanced syntax colouring has been applied to the file) I am using alt-g on the two function calls, and I am always offered both destinations.

When you test this, is the project placed on your C drive? Or are you accessing the project from some form of network drive?
What anti-virus software are you using?

I am looking for any obvious clue to explain this difference in behaviour.

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

feline
Whole Tomato Software

United Kingdom
19015 Posts

Posted - Feb 06 2007 :  11:31:52 AM  Show Profile  Reply with Quote
Your email with the VA about information has just reached me. Looking over it I am struck by the following lines in your Stable Includes:

S:\\repro;
S:\\repro\\SageInclude;
S:\\repro\\SBDInclude;
S:\\repro\\Include;

"repro" is the directory name holding the test project you sent me. Putting the project into the stable include directory list should not make a difference, but it is an interesting effect. Also S drive is a rather high drive lever for a local drive.

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

jameso
Ketchup Master

United Kingdom
83 Posts

Posted - Feb 06 2007 :  12:29:25 PM  Show Profile  Reply with Quote
The project is on S: which is a substed local drive (C:\\dev). VAX and VS are installed on C, in the default locations.

AV is mcafee corporate, I believe.

The 'stable' includes have been picked up from the default include dirs - I wouldn't really describe them as stable, possibly 'less unstable' than the rest...

James
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19015 Posts

Posted - Feb 06 2007 :  12:44:34 PM  Show Profile  Reply with Quote
Can you try accessing the project via C:, perhaps making a new directory "C:\\src\\" to hold the test project, and see if this makes any difference please?

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

jameso
Ketchup Master

United Kingdom
83 Posts

Posted - Feb 07 2007 :  03:25:13 AM  Show Profile  Reply with Quote
I opened the existing solution (on s:), rebuilt the symbol databases and closed the IDE, then re-opened the solution in a new IDE from c:\\dev

Once the syntax highlighting had been applied, I tried the same test - alt-g from repro.cpp and again it went to the header.

James
Go to Top of Page

jameso
Ketchup Master

United Kingdom
83 Posts

Posted - Feb 07 2007 :  06:40:53 AM  Show Profile  Reply with Quote
The main solution didn't load VAX this morning - looking in startup.log, I found this
GetSymDef idx c:\\program files\\visual assist x\\vc8\\CPP\\Db1Ds.db is corrupt, fid=0xeb155f, rel=0x145, act=0xbca042 tid=496 uiTid=3704:194 2/7/2007 08:18:09 0x1f0

I deleted the named file and reopened VS and it's working (still jumping to headers though)
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19015 Posts

Posted - Feb 07 2007 :  09:10:39 AM  Show Profile  Reply with Quote
At the risk of stating the obvious, you should not be seeing corrupt database files like this. Clearly something is going on here that is causing problems, but I am not sure what.

I will do some tests here with a S drive and see if I run into any problems.

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

feline
Whole Tomato Software

United Kingdom
19015 Posts

Posted - Feb 08 2007 :  1:20:16 PM  Show Profile  Reply with Quote
jameso which directory is the repro test project stored in on your machine? I have added a S drive to my machine using "subst", and created the basic directory structure, so that I can add the 4 directories on S: to the IDE's stable include directories.

I then placed the "repro" project into "S:\\repro", so I have:

S:\\repro\\repro.sln
S:\\repro\\repro\\repro.vcproj
S:\\repro\\repro\\repro.cpp

I have told VA to rebuild its symbol database and restarted VS2005. After this finished alt-g on both function calls in _tmain() offer me two destinations.

I am wondering if my directory structure looks anything like yours.

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

jameso
Ketchup Master

United Kingdom
83 Posts

Posted - Feb 08 2007 :  4:54:55 PM  Show Profile  Reply with Quote
I didn't add a separate directory for the solution, so it's probably this

S:\\repro\\repro.sln
S:\\repro\\repro.vcproj
S:\\repro\\repro.cpp

I'll confirm tomorrow

James
Go to Top of Page

jameso
Ketchup Master

United Kingdom
83 Posts

Posted - Feb 09 2007 :  03:55:18 AM  Show Profile  Reply with Quote
I was wrong :/

The directory structure you listed was correct
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19015 Posts

Posted - Feb 09 2007 :  08:39:50 AM  Show Profile  Reply with Quote
I am wondering if the alt-g problem is related to the corrupt database problem.

Are your projects stored under S:\\repro\\ ?
Since VA thinks the code inside these directories is stable then placing all of your active code here could cause problems.

Why have you organised your IDE include directories like this? It seems an odd structure to use.

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

jameso
Ketchup Master

United Kingdom
83 Posts

Posted - Feb 09 2007 :  08:49:59 AM  Show Profile  Reply with Quote
I've rebuilt the database a number of times - if it's caused by a corrupt database, the underlying problem is why the database gets corrupt :)

My S: drive contains a number of directories, each containing a solution. Each solution has a number of projects which may or may not be in subdirectories. This problem only definately occurs when the projects are in subdirectories (I've not checked the others)

The IDE include directories includes the solution directory so we can say

#include "someotherproject\\somefile.h"

without adding .. or $(SolutionDir) as a search directory for each project

James
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19015 Posts

Posted - Feb 09 2007 :  11:48:00 AM  Show Profile  Reply with Quote
Normally in this situation I would recommend adding these directories to the project's C++ additional include directories setting.


Can you please try the following, in:

VA Options -> Projects -> C/C++ Directories

change the platform to Custom, and then populate this with the IDE directories, but remove all of the S: directories from this list. This will remove one variable, and hopefully it will make a difference.

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

jameso
Ketchup Master

United Kingdom
83 Posts

Posted - Feb 09 2007 :  12:41:24 PM  Show Profile  Reply with Quote
As would I, but adding it to 80 projects would be rather more hassle than any of us need.

I'll try the change on Monday
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19015 Posts

Posted - Feb 09 2007 :  1:09:44 PM  Show Profile  Reply with Quote
*ah* that makes sense. These "strange" things often do make sense, but you need to understand why before they make sense.

Hopefully this change will help, but if not I will try and work out something else to try

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

jameso
Ketchup Master

United Kingdom
83 Posts

Posted - Feb 13 2007 :  07:32:51 AM  Show Profile  Reply with Quote
Unfortunately, it's not fixed the problem. The behaviour is still exactly the same.

James
Go to Top of Page
Page: of 2 Previous Topic Topic Next Topic  
Next Page
 New Topic  Reply to Topic
 Printer Friendly
Jump To:
© 2023 Whole Tomato Software, LLC Go To Top Of Page
Snitz Forums 2000