Software Archive
Read-only legacy content
17060 Discussions

Using Intel Composer 2011 std::string won't show up in debugger

David_Ecker
Beginner
1,149 Views
Hi,

chaning my project from Microsoft to the Intel Compiler 2011 in VS2010 the content of a std::string (std::basic_string) won't show up in the debugger view anymore. Instead (...) is shown.

I already found out that the the following line in the autoexp.dat file is the problem:

preview ( #if (($e._Myres) < ($e._BUF_SIZE)) ( [$e._Bx._Buf,s] ) #else ( [$e._Bx._Ptr,s] ))
...
similar lines below

Using the Microsoft Compiler _BUF_SIZE is defined as an enum with a value of 16 (based on type char). Using the intel compiler this enum is not defined at runtime. So, since _BUF_SIZE is not defined anymore the three dots are shown instead of the actuall string since the #if statement won't compute.

Replacing $e._BUF_SIZE with 16 in that file will get the Job done for this situation, but it will only work if I use basic_string.

How can I solve this and similar Problems?

Thanks,
David Ecker
0 Kudos
4 Replies
David_Ecker
Beginner
1,149 Views
Hi, again me.

Probably not a solution, but I replaced($e._BUF_SIZE) with (sizeof($e._Bx)).

It's actually working with both compilers. But I am not sure how it could be done automatically with the installation of Intel Parallel Studio or if this is a valid solution since I am changing a file of the Microsoft VS2010 Installation.

Thanks,
David Ecker
0 Kudos
BDahl2
Novice
1,149 Views
Hi,
its a bug. i had post it to intel and they want to fix it in the next Version.
0 Kudos
David_Ecker
Beginner
1,149 Views
Have you got any update on this one?
0 Kudos
Brandon_H_Intel
Employee
1,149 Views
Hi all,

This is supposed to be fixed in update 3 of Parallel Composer 2011 / C++ Composer XE 2011, and I've verified that with the test case we have here. Let me know if there's any problems.
0 Kudos
Reply