FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

DMC EXE failed

 
Post new topic   Reply to topic     Forum Index -> cv2pdb
View previous topic :: View next topic  
Author Message
TEHb



Joined: 15 Jul 2009
Posts: 3

PostPosted: Wed Jul 15, 2009 9:42 am    Post subject: DMC EXE failed Reply with quote

Hello,

At first it is just brilliant program! It helps a lot in my development.

But when I tried to process our large project it fails with message "unsupported field entry". I've found it does not support processing of the LF_FRIENDFCN_V1 field list (0x0404).

Is it possible to add support for this feature?

Thanks a lot!

Andrew.
Back to top
View user's profile Send private message
sagitario



Joined: 03 Mar 2007
Posts: 292

PostPosted: Thu Jul 16, 2009 12:04 am    Post subject: Reply with quote

Hi,

thanks for the feedback.

The LF_FRIENDFCN field is generated for friend functions of a struct/class, but I don't see any use for it in the debugger. So I have added some code to simply remove this entry:


Code:
         // throw away friend function declarations, there is no v3 replacement and the debugger won't need them
      case LF_FRIENDFCN_V1:
         pos += sizeof(fieldtype->friendfcn_v1) + fieldtype->friendfcn_v1.p_name.namelen - 1;
         continue;
      case LF_FRIENDFCN_V2:
         pos += sizeof(fieldtype->friendfcn_v2) + fieldtype->friendfcn_v2.p_name.namelen - 1;
         continue;

      default:
         setError("unsupported field entry");
         break;


It is also committed to the svn-repository, but I have not yet made a new version.

I hope this helps,
Rainer
Code:
Back to top
View user's profile Send private message
TEHb



Joined: 15 Jul 2009
Posts: 3

PostPosted: Thu Jul 16, 2009 2:33 am    Post subject: Reply with quote

Hi,

That's great thanks!

And you'll need to skip friend class definition as well:

Code:
      case LF_FRIENDCLS_V1:
         pos += sizeof(fieldtype->friendcls_v1);
         continue;
      case LF_FRIENDCLS_V2:
         pos += sizeof(fieldtype->friendcls_v2);
         continue;


I am going to use this converter for debugging our application as CodeView debugging in VS2005 and later doesn't work at all.

Cheers!
Andrew.
Back to top
View user's profile Send private message
TEHb



Joined: 15 Jul 2009
Posts: 3

PostPosted: Thu Jul 16, 2009 4:01 am    Post subject: Reply with quote

And another thing. Don't know should it skip LF_VBCLASS_V1 or process it:

Code:
      case LF_VBCLASS_V1:
      case LF_IVBCLASS_V1:
         leaf_len = numeric_leaf(&value, &fieldtype->vbclass_v1.vbpoff);
         pos += sizeof(fieldtype->vbclass_v1) - sizeof(fieldtype->vbclass_v1.vbpoff) + leaf_len;
         copylen = numeric_leaf(&value, &fieldtype->vbclass_v1.vbpoff);
         pos += copylen;
         continue;
Back to top
View user's profile Send private message
sagitario



Joined: 03 Mar 2007
Posts: 292

PostPosted: Thu Jul 16, 2009 12:48 pm    Post subject: Reply with quote

Hi,

thanks for the patches. I've added them to the source in svn.

The class still contains the __vbptr element, so the LF_VBCLASS doesn't seem necessary for the debugger. So I guess removing these entries is ok.

Rainer
Back to top
View user's profile Send private message
sagitario



Joined: 03 Mar 2007
Posts: 292

PostPosted: Fri Jul 17, 2009 1:57 am    Post subject: Reply with quote

Hi again,

I reconsidered this again and compared it to what the Microsoft compiler emits. It doesn't place any friend functions into the debug info, but friend classes. I mimicked that.

The virtual base class info is a necessary element in the type info, as it is a necessary to watch fields of the base class, so I added a conversion for this, too.

Best,
Rainer
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic     Forum Index -> cv2pdb All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group