Did you mean the assembly code produced by the debugger ?
If so, here is the assembly for after it crashed that I could get out of it…from the read function.
Just for a recap:
void egg_parser(const char* egg_file_name) {
assert(egg_file_name && "File Name Error");
PT(EggData) egg1 = new EggData();
file = new Filename(egg_file_name);
egg1->resolve_egg_filename(*file);
egg1->read(*file, "blah");
}
Assembly:
00E6481C call @ILT+2265(__RTC_CheckEsp) (0E518DEh)
egg1->read(*file, "blah");
00E64821 sub esp,20h
00E64824 mov ecx,esp
00E64826 mov dword ptr [ebp-0ECh],esp
00E6482C push offset string "blah" (0E6FF3Ch)
00E64831 call std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> > (0E51AE6h)
00E64836 mov dword ptr [ebp-140h],eax
00E6483C mov eax,dword ptr [ebp-140h]
00E64842 mov dword ptr [ebp-144h],eax
00E64848 mov byte ptr [ebp-4],4
00E6484C sub esp,3Ch
00E6484F mov ecx,esp
00E64851 mov dword ptr [ebp-0E0h],esp
00E64857 mov esi,esp
00E64859 mov edx,dword ptr [file (0E744CCh)]
00E6485F push edx
00E64860 call dword ptr [__imp_Filename::Filename (0E75978h)]
00E64866 cmp esi,esp
00E64868 call @ILT+2265(__RTC_CheckEsp) (0E518DEh)
00E6486D mov dword ptr [ebp-148h],eax
00E64873 mov eax,dword ptr [ebp-148h]
00E64879 mov dword ptr [ebp-14Ch],eax
00E6487F mov byte ptr [ebp-4],5
00E64883 lea ecx,[ebp-14h]
00E64886 call PointerTo<EggData>::operator-> (0E5121Ch)
00E6488B mov byte ptr [ebp-4],1
00E6488F mov ecx,eax
00E64891 call dword ptr [__imp_EggData::read (0E75A28h)]
}
00E64897 mov dword ptr [ebp-4],0FFFFFFFFh
00E6489E lea ecx,[ebp-14h]
00E648A1 call PointerTo<EggData>::~PointerTo<EggData> (0E514FBh)
00E648A6 push edx
00E648A7 mov ecx,ebp
00E648A9 push eax
00E648AA lea edx,[ (0E648D8h)]
00E648B0 call @ILT+915(@_RTC_CheckStackVars@8) (0E51398h)
00E648B5 pop eax
00E648B6 pop edx
00E648B7 mov ecx,dword ptr [ebp-0Ch]
00E648BA mov dword ptr fs:[0],ecx
00E648C1 pop ecx
00E648C2 pop edi
00E648C3 pop esi
00E648C4 pop ebx
00E648C5 add esp,14Ch
00E648CB cmp ebp,esp
00E648CD call @ILT+2265(__RTC_CheckEsp) (0E518DEh)
00E648D2 mov esp,ebp
The debugger points to the last statement in this assembly code on the crash.
Also, when I step through debug in Visual Studio, I am unable to enter either the EggData or Filename functions. Is this normal ?
From my normal c++ linker additions for Panda3d, the only new thing I have done is added libpandaegg.lib to the linker settings.
Is something missing ?