Author |
Topic |
|
Uniwares
Tomato Guru
Portugal
2322 Posts |
Posted - Sep 22 2006 : 1:30:21 PM
|
VS2003, C++
throw MyException();
Alt+G on MyException will go nowhere, only returns to the very same line. |
|
Uniwares
Tomato Guru
Portugal
2322 Posts |
Posted - Sep 22 2006 : 8:59:59 PM
|
That looks wrong too:
|
|
|
feline
Whole Tomato Software
United Kingdom
19014 Posts |
Posted - Sep 24 2006 : 5:03:11 PM
|
the alt-g problem after throw is:
case=2683
this seems to be caused by VA thinking the class is a local variable, which makes sense.
that tooltip does look wrong, i agree, but i cannot reproduce it so far. i am getting this:
if i add the line:
CException foo;
and then use alt-g on CException i am taken to the file:
C:\\Program Files\\Microsoft Visual Studio .NET 2003\\Vc7\\atlmfc\\include\\afx.h
is this the same location you are taken to? or are you ending up somewhere different? |
zen is the art of being at one with the two'ness |
|
|
Uniwares
Tomato Guru
Portugal
2322 Posts |
Posted - Sep 24 2006 : 10:01:20 PM
|
CException is defined/declared in more than one of the projects in the current workspace but alt+g takes me nowhere. I am not using the atl/mfc exception classes, but my own. |
|
|
feline
Whole Tomato Software
United Kingdom
19014 Posts |
Posted - Sep 30 2006 : 5:03:50 PM
|
are you only trying alt-g on lines that look like:
throw CException("problem details");
? I have just added a local CException class to one of my projects, and alt-g when throwing the exception does not do anything, just as you report. this is covered by case=2683
however when i just put CException on its own alt-g offers me both the local CException class and the system one.
can you check what happens on the line:
CExecption("just testing alt-g");
in your code please?
do all of the local CException classes have the same constructor? could you post the constructor from the .h file? I am still unable to reproduce that tooltip. |
zen is the art of being at one with the two'ness |
|
|
Uniwares
Tomato Guru
Portugal
2322 Posts |
Posted - Sep 30 2006 : 5:32:58 PM
|
CException on a line of its own, as a variable declaration, works fine and it jumps to the definition.
My CException class has a ctor which takes two std::string or two LPCSTR's.
explicit CException(std::string, std::string);
explicit CException(LPCSTR, LPCSTR); |
|
|
feline
Whole Tomato Software
United Kingdom
19014 Posts |
Posted - Oct 02 2006 : 5:31:33 PM
|
when you hover the mouse over your CException class what does VA show in the HCB? i am still not able to reproduce this tooltip bug, but i seem to be getting the tooltip for the ALT/MFC class instead of my local class. |
zen is the art of being at one with the two'ness |
|
|
Uniwares
Tomato Guru
Portugal
2322 Posts |
Posted - Oct 02 2006 : 5:44:50 PM
|
nothing, absolutely nothing. Cleaning db/cache/history doesnt improve the result.
Ok, lets make it clearer: hovering over the CException in the throw line, shows nothing. Hovering over CException in a variable style line, shows class info (well, i get the usual duplicated entries, but thats "normal"), although THIS class info is a perfect mix of MY class and the ATL/MFC class, means it shows members of both classes.
I am using includes from the ATL/MFC folders in some projects in the workspace but not in all. The ones which include the MFC CException do not include my CException class. Alt+G on CException shows 3 locations: two different project folders and the MFC folders. Thats correct so far. Besides of VAX not being able to distinguish which one i am using in the current project file.
|
|
|
feline
Whole Tomato Software
United Kingdom
19014 Posts |
Posted - Oct 04 2006 : 5:10:29 PM
|
is there any C# code in this solution? i saw a bug report a couple of days ago about duplicate entries showing up in the HCB for C# classes.
i suspect knowing which classes a given cpp file can see would require checking things like pre-processor directives, and other things that only the compiler really has access to. however that does not explain why you should get a mix of two separate classes in the HCB. |
zen is the art of being at one with the two'ness |
|
|
Uniwares
Tomato Guru
Portugal
2322 Posts |
Posted - Oct 04 2006 : 6:53:07 PM
|
No C# in that solution. Anyway there are about a dozen reports (half of them from me) about multiple entries in the HCB, 8 month old and more.
The "mix" i am not able to explain. Thats up to the WT LADS. |
|
|
feline
Whole Tomato Software
United Kingdom
19014 Posts |
Posted - Oct 05 2006 : 1:43:37 PM
|
we seem to be finally getting on top of the duplicate entries in the HCB for C# code. it has taken a while, but there are quite a lot of outstanding bug reports at the moment.
i will ask about the mixing up and the other odd effects here. |
zen is the art of being at one with the two'ness |
|
|
Uniwares
Tomato Guru
Portugal
2322 Posts |
Posted - Oct 05 2006 : 1:55:48 PM
|
What about the multiple entries for C++ ??? Any chances there too? |
|
|
feline
Whole Tomato Software
United Kingdom
19014 Posts |
Posted - Oct 05 2006 : 2:46:11 PM
|
the honest answer is i don't know. i recall a specific C++ bug where operator functions would be listed twice, but so far i cannot find any sign of an open bug report for this in the bug tracking system
also i am not sure if the fix (which should be in the next build) for duplicate items from C# classes will also effect C++ classes.
personally i do not use the HCB much, but when i do use it in C++ i never notice any duplicate items. |
zen is the art of being at one with the two'ness |
|
|
Uniwares
Tomato Guru
Portugal
2322 Posts |
Posted - Oct 05 2006 : 3:06:13 PM
|
Those posts are seemingly archived (not finding anything older than jan 2006) and most of them in the no longer existing (for me?) "Private Beta" forum. Anyway, I can produce at will as many screenshots of it as needed. see for example: VAX 1203 (2003)
VAX 1208 (2003)
VAX 1215 (2004)
VAX 1535 (2006)
The definition of the SIPResolver class fits on a screen and is as simple as can be.
|
|
|
feline
Whole Tomato Software
United Kingdom
19014 Posts |
Posted - Oct 05 2006 : 4:15:32 PM
|
the SIPResolver screen shot looks just like the C# bug in action. if it is the same effect then when you open the IDE the HCB shows the correct information. as you move from file to file, using CTRL-TAB the number of duplicates increases.
given this is C++ you probably have to CTRL-TAB across the header file.
does this sound like a reasonable description of your experience?
the problem with this theory is that i cannot reproduce the bug using a C++ project.
do you have any idea how the HCB ends up looking like this? is it ever correct to start with? |
zen is the art of being at one with the two'ness |
|
|
Uniwares
Tomato Guru
Portugal
2322 Posts |
Posted - Oct 05 2006 : 4:19:13 PM
|
No need to tab through the files. I just open any file and there it is, even right after loading the solution, for some classes its never right, for others its always right. No pattern. It actually does not grow the list, the items remain stable. |
|
|
sean
Whole Tomato Software
USA
2817 Posts |
Posted - Oct 06 2006 : 01:01:40 AM
|
The ctrl+tab bug strictly affected C# (case=2734).
Does the problem always affect the same classes or will a class be fine in one session and afflicted in the next? For example does the HCB for SIPResolver always appear as it does in the last screenshot?
I assume that SIPResolver is defined in a header file? Is it part of a solution or is it included via an additional include directory?
Is the definition in a VSS shared file? That is, does the file exist in multiple places or is there just one copy of the file?
If you mouseover the duplicate entries in the HCB, are the file and line numbers that appear in the tooltips for each item the same?
|
|
|
Uniwares
Tomato Guru
Portugal
2322 Posts |
Posted - Oct 06 2006 : 09:11:32 AM
|
So far i can see all definitions that are wrong in the HCB are VSS shared files, that exist multiple times in the solution. The number of copies does however not correlate to the number of copies in the HCB. Not even all members of the affected classes are appearing multiple times, some classes show ctors 3 times, but another member only once (and vice versa). The line numbers are all the same and correct. |
|
|
feline
Whole Tomato Software
United Kingdom
19014 Posts |
Posted - Oct 09 2006 : 5:18:43 PM
|
I have a test project that produces duplicate items in the HCB. Interestingly only functions are being listed more than once. The class I have duplicated also contains a member variable and an enum, but this is not being duplicated in the HCB.
For ease this test uses real duplicate files, I simply copy / pasted them. When I hover the mouse over the entries in the HCB the duplicate functions come from different files.
Uniwares are these shared files in different directories? I assume they must be. You are getting the same file and line, but are you seeing the full path for the files? If so do the duplicates have different paths?
One can hope that a fix for this will help with the mixed up CException HCB results.
case=2917
|
zen is the art of being at one with the two'ness |
Edited by - feline on Oct 09 2006 5:19:32 PM |
|
|
Uniwares
Tomato Guru
Portugal
2322 Posts |
Posted - Oct 10 2006 : 9:22:50 PM
|
feline, the duplicates do have different paths, functions, data members, enums, all have different paths. Except... when there are more than two. Sometimes there are all different paths, sometimes there are only two different ones, with one or two which are the same. Double-clicking the item takes me always to the location shown in the tooltip. (at least that) |
|
|
support
Whole Tomato Software
5566 Posts |
Posted - May 31 2007 : 01:10:55 AM
|
case=2683 fixed in build 1557 |
|
|
|
Topic |
|