BUG: Debugger Cannot Watch Function Returning struct or union
ID: Q177937
|
The information in this article applies to:
-
The Integrated Debugger, used with:
-
Microsoft Visual C++, 32-bit Editions, versions 5.0, 5.0sp1, 5.0sp2, 6.0
SYMPTOMS
Adding a function call in the Developer Studio debugger Watch window may
result in the following message if the function returns a struct or union
with a field width greater than 4 bytes:
Error: cannot display value
RESOLUTION
There is no workaround for this problem.
STATUS
Microsoft has confirmed this to be a bug in the Microsoft products listed
at the beginning of this article.
MORE INFORMATION
The following procedure reproduces this problem:
- Create a new console application project and add the following file to
the project:
/* File: TEST.CPP */
struct _XX
{
char m1;
char m2;
char m3;
char m4;
} XX;
struct _XX fun()
{
return XX;
}
int main()
{
fun();
return 0;
}
- Build the project.
- Click Build|Start Debug|Step Into on the Developer Studio menu.
- Goto the Watch window by selecting View|Debug Windows|Watch.
- Add the following watch expression in the "Name" column:
fun()
Results: You will see the message "Error: cannot display value" in the
"Value" column.
Additional query words:
Keywords : kbDebug kbide kbVC500bug kbVC600bug
Version : winnt:5.0,5.0sp1,5.0sp2,6.0
Platform : winnt
Issue type : kbbug