Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.

Can't debug into method

Ha_Duy_Tuan
Beginner
1,192 Views

Hi all

I'm using Intel Parallel 2011.

I can't debug into methodA with below statement when I press F11:

if (false == methodA())

But if I set break point inside methodA, I can debug into this method.

Anybody met this problem.

0 Kudos
26 Replies
Ha_Duy_Tuan
Beginner
167 Views

Hi Sergey

I understand what you mean. In this sample, Output must be:

Main start
D::MyMethod
D::MyMethod
D::MyMethod
Main end

But I wonder why I can't step in with statement [c->MyMethod()] with Intel complier but with Visual Complier I can step in.

Best Regard 

0 Kudos
SergeyKostrov
Valued Contributor II
167 Views
>>...I wonder why I can't step in with statement [c->MyMethod()] with Intel complier... >>>>[ Posted by Georg ] >>>>...I think this is related to incorrect debug information generated by the compiler. Hence, I've created a defect >>>>ticket (DPD200321626)... This is what Georg posted a couple of hours ago and it will be fixed.
0 Kudos
SergeyKostrov
Valued Contributor II
167 Views
>>...In this sample, Output must be: >> >>Main start >>D::MyMethod >>D::MyMethod >>D::MyMethod >>Main end I see. Here is a very small test case I just created that uses Virtual Base classes. Please take a look, or ignore if you don't need it :). ... #include "stdio.h" class A { public: A(){}; virtual ~A(){}; virtual bool MyMethod() = 0; }; class B : virtual public A { public: B(){}; virtual ~B(){}; virtual bool MyMethod(); }; bool B::MyMethod() { printf( "B::MyMethod\n" ); return true; } class C : virtual public A { public: C(){}; virtual ~C(){}; virtual bool MyMethod(); }; bool C::MyMethod() { printf( "C::MyMethod\n" ); return true; } class D : public B, public C { public: D(){}; virtual ~D(){}; virtual bool MyMethod(); }; bool D::MyMethod() { printf( "D::MyMethod\n" ); return true; } int main( void ) { printf( "Main start\n" ); A *d = ( D * )new D(); A *b = ( B * )new B(); A *c = ( C * )new C(); d->MyMethod(); b->MyMethod(); c->MyMethod(); printf( "Main end\n" ); return ( int )0; } [ Output ] Main start D::MyMethod B::MyMethod C::MyMethod Main end Note: This is almost a book-like application of Late Binding of C++ objects...
0 Kudos
SergeyKostrov
Valued Contributor II
167 Views
Hi everybody, Georg, please take a look at another test-case and it is based on a code provided by Ha Duy Tuan. Even if the Run-time Binding is used in a different way the test also reproduces 'Cant Step Into the Method' problem.
0 Kudos
Georg_Z_Intel
Employee
167 Views
Hello, a fix has been made. Unfortunately it won't make it in the 2013 releases. That means, only with the next major Intel(R) Composer XE package released somewhere end of 2014 it will show up. You can set manual breakpoints as (admittedly inconvenient) workaround in the meantime. Best regards, Georg Zitzlsberger
0 Kudos
Ha_Duy_Tuan
Beginner
167 Views

Hi Georg,

Thanks for your information.

Best regards,

Ha Duy Tuan

0 Kudos
Reply