Larry Griffiths
2008-08-06 20:52:07 UTC
BDS2007 under Windows XP with service pack 2 applied.
I have the following code that gets a C0000005 exception calling a
destructor for an AnsiString that was never constructed.
Why is the 0x140 AnsiString being freed after the block instead of the 0x13C
AnsiString.
The 0x140 AnsiString is never allocated because the first condition in the
if is satisfied.
Is this a know compiler code generation error?
Can anybody else re-produce this bug?
Larry Griffiths.
if( FPO4->Element[ "Size" ]->IsPresent() || FPO4->Element[
"Unit" ]->IsPresent() )
{
String _WHL_SIZE = FPO4->Element[ "Size" ]->AsString +
FPO4->Element[ "Unit" ]->AsString;
_SqlGen->AddFieldAndValue( "WHL_SIZE", _WHL_SIZE );
}
EDI_Process832U.cpp.437: if( FPO4->Element[ "Size" ]->IsPresent() ||
FPO4->Element[ "Unit" ]->IsPresent() )
00B5AD7A 66C78598FEFFFF1C mov word ptr [ebp-$00000168],$021c
00B5AD83 BAE36F1F01 mov edx,$011f6fe3
00B5AD88 8D85C4FEFFFF lea eax,[ebp-$0000013c] <-----------------This
String is allocated for the first test in the if statement.
00B5AD8E E8D16B4400 call System::AnsiString::AnsiString(const char *)
00B5AD93 FF85A4FEFFFF inc dword ptr [ebp-$0000015c]
00B5AD99 8B10 mov edx,[eax]
00B5AD9B 8B8584FEFFFF mov eax,[ebp-$0000017c]
00B5ADA1 8B8020060000 mov eax,[eax+$00000620]
00B5ADA7 E8ACCEFFFF call
TEDI_ExtractedElements::GetElement(System::AnsiString)
00B5ADAC E817CDFFFF call TEDI_ExtractedElement::IsPresent()
00B5ADB1 84C0 test al,al
00B5ADB3 7536 jnz $00b5adeb <-----------------Skip
allocation of 2nd String.
00B5ADB5 BAE86F1F01 mov edx,$011f6fe8
00B5ADBA 8D85C0FEFFFF lea eax,[ebp-$00000140]
00B5ADC0 E89F6B4400 call System::AnsiString::AnsiString(const char *)
<-----------------This is never allocated when the first condition is
satisfied.
00B5ADC5 FF85A4FEFFFF inc dword ptr [ebp-$0000015c]
00B5ADCB 8B10 mov edx,[eax]
00B5ADCD 8B8D84FEFFFF mov ecx,[ebp-$0000017c]
00B5ADD3 8B8120060000 mov eax,[ecx+$00000620]
00B5ADD9 E87ACEFFFF call
TEDI_ExtractedElements::GetElement(System::AnsiString)
00B5ADDE E8E5CCFFFF call TEDI_ExtractedElement::IsPresent()
00B5ADE3 84C0 test al,al
00B5ADE5 0F8447010000 jz $00b5af32
EDI_Process832U.cpp.439: String _WHL_SIZE = FPO4->Element[
"Size" ]->AsString + FPO4->Element[ "Unit" ]->AsString;
00B5ADEB 66C78598FEFFFF34 mov word ptr [ebp-$00000168],$0234
00B5ADF4 BAF26F1F01 mov edx,$011f6ff2
00B5ADF9 8D85B4FEFFFF lea eax,[ebp-$0000014c]
00B5ADFF E8606B4400 call System::AnsiString::AnsiString(const char *)
00B5AE04 FF85A4FEFFFF inc dword ptr [ebp-$0000015c]
00B5AE0A 8B10 mov edx,[eax]
00B5AE0C 8B8D84FEFFFF mov ecx,[ebp-$0000017c]
00B5AE12 8B8120060000 mov eax,[ecx+$00000620]
00B5AE18 E83BCEFFFF call
TEDI_ExtractedElements::GetElement(System::AnsiString)
00B5AE1D 83C004 add eax,$04
00B5AE20 50 push eax
00B5AE21 BAED6F1F01 mov edx,$011f6fed
00B5AE26 8D85B8FEFFFF lea eax,[ebp-$00000148]
00B5AE2C E8336B4400 call System::AnsiString::AnsiString(const char *)
00B5AE31 FF85A4FEFFFF inc dword ptr [ebp-$0000015c]
00B5AE37 8B10 mov edx,[eax]
00B5AE39 8B8D84FEFFFF mov ecx,[ebp-$0000017c]
00B5AE3F 8B8120060000 mov eax,[ecx+$00000620]
00B5AE45 E80ECEFFFF call
TEDI_ExtractedElements::GetElement(System::AnsiString)
00B5AE4A 83C004 add eax,$04
00B5AE4D 50 push eax
00B5AE4E 8D85BCFEFFFF lea eax,[ebp-$00000144]
00B5AE54 E8FBCF8AFF call System::AnsiString::AnsiString()
00B5AE59 8BC8 mov ecx,eax
00B5AE5B FF85A4FEFFFF inc dword ptr [ebp-$0000015c]
00B5AE61 58 pop eax
00B5AE62 5A pop edx
00B5AE63 E8006F4400 call System::AnsiString::operator +(const
System::AnsiString &)
00B5AE68 66C78598FEFFFF28 mov word ptr [ebp-$00000168],$0228
EDI_Process832U.cpp.440: _SqlGen->AddFieldAndValue( "WHL_SIZE",
WHL_SIZE );
00B5AE71 BA366D1F01 mov edx,$011f6d36
00B5AE76 8D85ACFEFFFF lea eax,[ebp-$00000154]
00B5AE7C E8E36A4400 call System::AnsiString::AnsiString(const char *)
00B5AE81 FF85A4FEFFFF inc dword ptr [ebp-$0000015c]
00B5AE87 FF30 push dword ptr [eax]
00B5AE89 66C78598FEFFFF40 mov word ptr [ebp-$00000168],$0240
00B5AE92 BAF76F1F01 mov edx,$011f6ff7
00B5AE97 8D85B0FEFFFF lea eax,[ebp-$00000150]
00B5AE9D E8C26A4400 call System::AnsiString::AnsiString(const char *)
00B5AEA2 FF85A4FEFFFF inc dword ptr [ebp-$0000015c]
00B5AEA8 8B10 mov edx,[eax]
00B5AEAA 8B8DBCFEFFFF mov ecx,[ebp-$00000144]
00B5AEB0 8B8580FEFFFF mov eax,[ebp-$00000180]
00B5AEB6 E871961400 call
TSqlGen::AddFieldAndValue(System::AnsiString,System::AnsiString,System::AnsiString)
00B5AEBB FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5AEC1 8D85ACFEFFFF lea eax,[ebp-$00000154]
00B5AEC7 BA02000000 mov edx,$00000002
00B5AECC E83F6E4400 call System::AnsiString::~AnsiString()
00B5AED1 FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5AED7 8D85B0FEFFFF lea eax,[ebp-$00000150]
00B5AEDD BA02000000 mov edx,$00000002
00B5AEE2 E8296E4400 call System::AnsiString::~AnsiString()
EDI_Process832U.cpp.441: }
00B5AEE7 FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5AEED 8D85B4FEFFFF lea eax,[ebp-$0000014c]
00B5AEF3 BA02000000 mov edx,$00000002
00B5AEF8 E8136E4400 call System::AnsiString::~AnsiString()
00B5AEFD FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5AF03 8D85B8FEFFFF lea eax,[ebp-$00000148]
00B5AF09 BA02000000 mov edx,$00000002
00B5AF0E E8FD6D4400 call System::AnsiString::~AnsiString()
00B5AF13 FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5AF19 8D85BCFEFFFF lea eax,[ebp-$00000144]
00B5AF1F BA02000000 mov edx,$00000002
00B5AF24 E8E76D4400 call System::AnsiString::~AnsiString()
00B5AF29 66C78598FEFFFF00 mov word ptr [ebp-$00000168],$0000
EDI_Process832U.cpp.577: }
00B5AF32 FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5AF38 8D85C0FEFFFF lea eax,[ebp-$00000140] <----------------- This
String does not exist if 1st condition in if statement is satisfied.
00B5AF3E BA02000000 mov edx,$00000002
00B5AF43 E8C86D4400 call System::AnsiString::~AnsiString()
<-----------------C0000005 Exception
00B5AF48 FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5AF4E 8D85C4FEFFFF lea eax,[ebp-$0000013c]
00B5AF54 BA02000000 mov edx,$00000002
00B5AF59 E8B26D4400 call System::AnsiString::~AnsiString()
00B5AF5E FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5AF64 8D85D8FEFFFF lea eax,[ebp-$00000128]
00B5AF6A BA02000000 mov edx,$00000002
00B5AF6F E89C6D4400 call System::AnsiString::~AnsiString()
00B5AF74 FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5AF7A 8D85DCFEFFFF lea eax,[ebp-$00000124]
00B5AF80 BA02000000 mov edx,$00000002
00B5AF85 E8866D4400 call System::AnsiString::~AnsiString()
00B5AF8A FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5AF90 8D85F0FEFFFF lea eax,[ebp-$00000110]
00B5AF96 BA02000000 mov edx,$00000002
00B5AF9B E8706D4400 call System::AnsiString::~AnsiString()
00B5AFA0 FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5AFA6 8D85F4FEFFFF lea eax,[ebp-$0000010c]
00B5AFAC BA02000000 mov edx,$00000002
00B5AFB1 E85A6D4400 call System::AnsiString::~AnsiString()
00B5AFB6 FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5AFBC 8D85F8FEFFFF lea eax,[ebp-$00000108]
00B5AFC2 BA02000000 mov edx,$00000002
00B5AFC7 E8446D4400 call System::AnsiString::~AnsiString()
00B5AFCC FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5AFD2 8D85FCFEFFFF lea eax,[ebp-$00000104]
00B5AFD8 BA02000000 mov edx,$00000002
00B5AFDD E82E6D4400 call System::AnsiString::~AnsiString()
00B5AFE2 FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5AFE8 8D8500FFFFFF lea eax,[ebp-$00000100]
00B5AFEE BA02000000 mov edx,$00000002
00B5AFF3 E8186D4400 call System::AnsiString::~AnsiString()
00B5AFF8 FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5AFFE 8D8504FFFFFF lea eax,[ebp-$000000fc]
00B5B004 BA02000000 mov edx,$00000002
00B5B009 E8026D4400 call System::AnsiString::~AnsiString()
00B5B00E FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5B014 8D8518FFFFFF lea eax,[ebp-$000000e8]
00B5B01A BA02000000 mov edx,$00000002
00B5B01F E8EC6C4400 call System::AnsiString::~AnsiString()
00B5B024 FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5B02A 8D852CFFFFFF lea eax,[ebp-$000000d4]
00B5B030 BA02000000 mov edx,$00000002
00B5B035 E8D66C4400 call System::AnsiString::~AnsiString()
00B5B03A FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5B040 8D8540FFFFFF lea eax,[ebp-$000000c0]
00B5B046 BA02000000 mov edx,$00000002
00B5B04B E8C06C4400 call System::AnsiString::~AnsiString()
00B5B050 FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5B056 8D8554FFFFFF lea eax,[ebp-$000000ac]
00B5B05C BA02000000 mov edx,$00000002
00B5B061 E8AA6C4400 call System::AnsiString::~AnsiString()
00B5B066 FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5B06C 8D8558FFFFFF lea eax,[ebp-$000000a8]
00B5B072 BA02000000 mov edx,$00000002
00B5B077 E8946C4400 call System::AnsiString::~AnsiString()
00B5B07C FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5B082 8D855CFFFFFF lea eax,[ebp-$000000a4]
00B5B088 BA02000000 mov edx,$00000002
00B5B08D E87E6C4400 call System::AnsiString::~AnsiString()
00B5B092 FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5B098 8D8560FFFFFF lea eax,[ebp-$000000a0]
00B5B09E BA02000000 mov edx,$00000002
00B5B0A3 E8686C4400 call System::AnsiString::~AnsiString()
00B5B0A8 FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5B0AE 8D8564FFFFFF lea eax,[ebp-$0000009c]
00B5B0B4 BA02000000 mov edx,$00000002
00B5B0B9 E8526C4400 call System::AnsiString::~AnsiString()
00B5B0BE FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5B0C4 8D8568FFFFFF lea eax,[ebp-$00000098]
00B5B0CA BA02000000 mov edx,$00000002
00B5B0CF E83C6C4400 call System::AnsiString::~AnsiString()
00B5B0D4 FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5B0DA 8D856CFFFFFF lea eax,[ebp-$00000094]
00B5B0E0 BA02000000 mov edx,$00000002
00B5B0E5 E8266C4400 call System::AnsiString::~AnsiString()
00B5B0EA FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5B0F0 8D8570FFFFFF lea eax,[ebp-$00000090]
00B5B0F6 BA02000000 mov edx,$00000002
00B5B0FB E8106C4400 call System::AnsiString::~AnsiString()
00B5B100 FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5B106 8D8574FFFFFF lea eax,[ebp-$0000008c]
00B5B10C BA02000000 mov edx,$00000002
00B5B111 E8FA6B4400 call System::AnsiString::~AnsiString()
00B5B116 FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5B11C 8D4588 lea eax,[ebp-$78]
00B5B11F BA02000000 mov edx,$00000002
00B5B124 E8E76B4400 call System::AnsiString::~AnsiString()
00B5B129 FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5B12F 8D459C lea eax,[ebp-$64]
00B5B132 BA02000000 mov edx,$00000002
00B5B137 E8D46B4400 call System::AnsiString::~AnsiString()
00B5B13C FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5B142 8D45A0 lea eax,[ebp-$60]
00B5B145 BA02000000 mov edx,$00000002
00B5B14A E8C16B4400 call System::AnsiString::~AnsiString()
00B5B14F FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5B155 8D45A4 lea eax,[ebp-$5c]
00B5B158 BA02000000 mov edx,$00000002
00B5B15D E8AE6B4400 call System::AnsiString::~AnsiString()
00B5B162 FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5B168 8D45B4 lea eax,[ebp-$4c]
00B5B16B BA02000000 mov edx,$00000002
00B5B170 E89B6B4400 call System::AnsiString::~AnsiString()
00B5B175 FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5B17B 8D45C4 lea eax,[ebp-$3c]
00B5B17E BA02000000 mov edx,$00000002
00B5B183 E8886B4400 call System::AnsiString::~AnsiString()
00B5B188 FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5B18E 8D45C8 lea eax,[ebp-$38]
00B5B191 BA02000000 mov edx,$00000002
00B5B196 E8756B4400 call System::AnsiString::~AnsiString()
00B5B19B FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5B1A1 8D45D8 lea eax,[ebp-$28]
00B5B1A4 BA02000000 mov edx,$00000002
00B5B1A9 E8626B4400 call System::AnsiString::~AnsiString()
00B5B1AE FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5B1B4 8D45DC lea eax,[ebp-$24]
00B5B1B7 BA02000000 mov edx,$00000002
00B5B1BC E84F6B4400 call System::AnsiString::~AnsiString()
00B5B1C1 FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5B1C7 8D45EC lea eax,[ebp-$14]
00B5B1CA BA02000000 mov edx,$00000002
00B5B1CF E83C6B4400 call System::AnsiString::~AnsiString()
00B5B1D4 FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5B1DA 8D45FC lea eax,[ebp-$04]
00B5B1DD BA02000000 mov edx,$00000002
00B5B1E2 E8296B4400 call System::AnsiString::~AnsiString()
00B5B1E7 8B8D88FEFFFF mov ecx,[ebp-$00000178]
00B5B1ED 64890D00000000 mov fs:[$00000000],ecx
EDI_Process832U.cpp.577: }
00B5B1F4 8BE5 mov esp,ebp
00B5B1F6 5D pop ebp
00B5B1F7 C3 ret
I have the following code that gets a C0000005 exception calling a
destructor for an AnsiString that was never constructed.
Why is the 0x140 AnsiString being freed after the block instead of the 0x13C
AnsiString.
The 0x140 AnsiString is never allocated because the first condition in the
if is satisfied.
Is this a know compiler code generation error?
Can anybody else re-produce this bug?
Larry Griffiths.
if( FPO4->Element[ "Size" ]->IsPresent() || FPO4->Element[
"Unit" ]->IsPresent() )
{
String _WHL_SIZE = FPO4->Element[ "Size" ]->AsString +
FPO4->Element[ "Unit" ]->AsString;
_SqlGen->AddFieldAndValue( "WHL_SIZE", _WHL_SIZE );
}
EDI_Process832U.cpp.437: if( FPO4->Element[ "Size" ]->IsPresent() ||
FPO4->Element[ "Unit" ]->IsPresent() )
00B5AD7A 66C78598FEFFFF1C mov word ptr [ebp-$00000168],$021c
00B5AD83 BAE36F1F01 mov edx,$011f6fe3
00B5AD88 8D85C4FEFFFF lea eax,[ebp-$0000013c] <-----------------This
String is allocated for the first test in the if statement.
00B5AD8E E8D16B4400 call System::AnsiString::AnsiString(const char *)
00B5AD93 FF85A4FEFFFF inc dword ptr [ebp-$0000015c]
00B5AD99 8B10 mov edx,[eax]
00B5AD9B 8B8584FEFFFF mov eax,[ebp-$0000017c]
00B5ADA1 8B8020060000 mov eax,[eax+$00000620]
00B5ADA7 E8ACCEFFFF call
TEDI_ExtractedElements::GetElement(System::AnsiString)
00B5ADAC E817CDFFFF call TEDI_ExtractedElement::IsPresent()
00B5ADB1 84C0 test al,al
00B5ADB3 7536 jnz $00b5adeb <-----------------Skip
allocation of 2nd String.
00B5ADB5 BAE86F1F01 mov edx,$011f6fe8
00B5ADBA 8D85C0FEFFFF lea eax,[ebp-$00000140]
00B5ADC0 E89F6B4400 call System::AnsiString::AnsiString(const char *)
<-----------------This is never allocated when the first condition is
satisfied.
00B5ADC5 FF85A4FEFFFF inc dword ptr [ebp-$0000015c]
00B5ADCB 8B10 mov edx,[eax]
00B5ADCD 8B8D84FEFFFF mov ecx,[ebp-$0000017c]
00B5ADD3 8B8120060000 mov eax,[ecx+$00000620]
00B5ADD9 E87ACEFFFF call
TEDI_ExtractedElements::GetElement(System::AnsiString)
00B5ADDE E8E5CCFFFF call TEDI_ExtractedElement::IsPresent()
00B5ADE3 84C0 test al,al
00B5ADE5 0F8447010000 jz $00b5af32
EDI_Process832U.cpp.439: String _WHL_SIZE = FPO4->Element[
"Size" ]->AsString + FPO4->Element[ "Unit" ]->AsString;
00B5ADEB 66C78598FEFFFF34 mov word ptr [ebp-$00000168],$0234
00B5ADF4 BAF26F1F01 mov edx,$011f6ff2
00B5ADF9 8D85B4FEFFFF lea eax,[ebp-$0000014c]
00B5ADFF E8606B4400 call System::AnsiString::AnsiString(const char *)
00B5AE04 FF85A4FEFFFF inc dword ptr [ebp-$0000015c]
00B5AE0A 8B10 mov edx,[eax]
00B5AE0C 8B8D84FEFFFF mov ecx,[ebp-$0000017c]
00B5AE12 8B8120060000 mov eax,[ecx+$00000620]
00B5AE18 E83BCEFFFF call
TEDI_ExtractedElements::GetElement(System::AnsiString)
00B5AE1D 83C004 add eax,$04
00B5AE20 50 push eax
00B5AE21 BAED6F1F01 mov edx,$011f6fed
00B5AE26 8D85B8FEFFFF lea eax,[ebp-$00000148]
00B5AE2C E8336B4400 call System::AnsiString::AnsiString(const char *)
00B5AE31 FF85A4FEFFFF inc dword ptr [ebp-$0000015c]
00B5AE37 8B10 mov edx,[eax]
00B5AE39 8B8D84FEFFFF mov ecx,[ebp-$0000017c]
00B5AE3F 8B8120060000 mov eax,[ecx+$00000620]
00B5AE45 E80ECEFFFF call
TEDI_ExtractedElements::GetElement(System::AnsiString)
00B5AE4A 83C004 add eax,$04
00B5AE4D 50 push eax
00B5AE4E 8D85BCFEFFFF lea eax,[ebp-$00000144]
00B5AE54 E8FBCF8AFF call System::AnsiString::AnsiString()
00B5AE59 8BC8 mov ecx,eax
00B5AE5B FF85A4FEFFFF inc dword ptr [ebp-$0000015c]
00B5AE61 58 pop eax
00B5AE62 5A pop edx
00B5AE63 E8006F4400 call System::AnsiString::operator +(const
System::AnsiString &)
00B5AE68 66C78598FEFFFF28 mov word ptr [ebp-$00000168],$0228
EDI_Process832U.cpp.440: _SqlGen->AddFieldAndValue( "WHL_SIZE",
WHL_SIZE );
00B5AE71 BA366D1F01 mov edx,$011f6d36
00B5AE76 8D85ACFEFFFF lea eax,[ebp-$00000154]
00B5AE7C E8E36A4400 call System::AnsiString::AnsiString(const char *)
00B5AE81 FF85A4FEFFFF inc dword ptr [ebp-$0000015c]
00B5AE87 FF30 push dword ptr [eax]
00B5AE89 66C78598FEFFFF40 mov word ptr [ebp-$00000168],$0240
00B5AE92 BAF76F1F01 mov edx,$011f6ff7
00B5AE97 8D85B0FEFFFF lea eax,[ebp-$00000150]
00B5AE9D E8C26A4400 call System::AnsiString::AnsiString(const char *)
00B5AEA2 FF85A4FEFFFF inc dword ptr [ebp-$0000015c]
00B5AEA8 8B10 mov edx,[eax]
00B5AEAA 8B8DBCFEFFFF mov ecx,[ebp-$00000144]
00B5AEB0 8B8580FEFFFF mov eax,[ebp-$00000180]
00B5AEB6 E871961400 call
TSqlGen::AddFieldAndValue(System::AnsiString,System::AnsiString,System::AnsiString)
00B5AEBB FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5AEC1 8D85ACFEFFFF lea eax,[ebp-$00000154]
00B5AEC7 BA02000000 mov edx,$00000002
00B5AECC E83F6E4400 call System::AnsiString::~AnsiString()
00B5AED1 FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5AED7 8D85B0FEFFFF lea eax,[ebp-$00000150]
00B5AEDD BA02000000 mov edx,$00000002
00B5AEE2 E8296E4400 call System::AnsiString::~AnsiString()
EDI_Process832U.cpp.441: }
00B5AEE7 FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5AEED 8D85B4FEFFFF lea eax,[ebp-$0000014c]
00B5AEF3 BA02000000 mov edx,$00000002
00B5AEF8 E8136E4400 call System::AnsiString::~AnsiString()
00B5AEFD FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5AF03 8D85B8FEFFFF lea eax,[ebp-$00000148]
00B5AF09 BA02000000 mov edx,$00000002
00B5AF0E E8FD6D4400 call System::AnsiString::~AnsiString()
00B5AF13 FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5AF19 8D85BCFEFFFF lea eax,[ebp-$00000144]
00B5AF1F BA02000000 mov edx,$00000002
00B5AF24 E8E76D4400 call System::AnsiString::~AnsiString()
00B5AF29 66C78598FEFFFF00 mov word ptr [ebp-$00000168],$0000
EDI_Process832U.cpp.577: }
00B5AF32 FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5AF38 8D85C0FEFFFF lea eax,[ebp-$00000140] <----------------- This
String does not exist if 1st condition in if statement is satisfied.
00B5AF3E BA02000000 mov edx,$00000002
00B5AF43 E8C86D4400 call System::AnsiString::~AnsiString()
<-----------------C0000005 Exception
00B5AF48 FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5AF4E 8D85C4FEFFFF lea eax,[ebp-$0000013c]
00B5AF54 BA02000000 mov edx,$00000002
00B5AF59 E8B26D4400 call System::AnsiString::~AnsiString()
00B5AF5E FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5AF64 8D85D8FEFFFF lea eax,[ebp-$00000128]
00B5AF6A BA02000000 mov edx,$00000002
00B5AF6F E89C6D4400 call System::AnsiString::~AnsiString()
00B5AF74 FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5AF7A 8D85DCFEFFFF lea eax,[ebp-$00000124]
00B5AF80 BA02000000 mov edx,$00000002
00B5AF85 E8866D4400 call System::AnsiString::~AnsiString()
00B5AF8A FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5AF90 8D85F0FEFFFF lea eax,[ebp-$00000110]
00B5AF96 BA02000000 mov edx,$00000002
00B5AF9B E8706D4400 call System::AnsiString::~AnsiString()
00B5AFA0 FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5AFA6 8D85F4FEFFFF lea eax,[ebp-$0000010c]
00B5AFAC BA02000000 mov edx,$00000002
00B5AFB1 E85A6D4400 call System::AnsiString::~AnsiString()
00B5AFB6 FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5AFBC 8D85F8FEFFFF lea eax,[ebp-$00000108]
00B5AFC2 BA02000000 mov edx,$00000002
00B5AFC7 E8446D4400 call System::AnsiString::~AnsiString()
00B5AFCC FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5AFD2 8D85FCFEFFFF lea eax,[ebp-$00000104]
00B5AFD8 BA02000000 mov edx,$00000002
00B5AFDD E82E6D4400 call System::AnsiString::~AnsiString()
00B5AFE2 FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5AFE8 8D8500FFFFFF lea eax,[ebp-$00000100]
00B5AFEE BA02000000 mov edx,$00000002
00B5AFF3 E8186D4400 call System::AnsiString::~AnsiString()
00B5AFF8 FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5AFFE 8D8504FFFFFF lea eax,[ebp-$000000fc]
00B5B004 BA02000000 mov edx,$00000002
00B5B009 E8026D4400 call System::AnsiString::~AnsiString()
00B5B00E FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5B014 8D8518FFFFFF lea eax,[ebp-$000000e8]
00B5B01A BA02000000 mov edx,$00000002
00B5B01F E8EC6C4400 call System::AnsiString::~AnsiString()
00B5B024 FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5B02A 8D852CFFFFFF lea eax,[ebp-$000000d4]
00B5B030 BA02000000 mov edx,$00000002
00B5B035 E8D66C4400 call System::AnsiString::~AnsiString()
00B5B03A FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5B040 8D8540FFFFFF lea eax,[ebp-$000000c0]
00B5B046 BA02000000 mov edx,$00000002
00B5B04B E8C06C4400 call System::AnsiString::~AnsiString()
00B5B050 FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5B056 8D8554FFFFFF lea eax,[ebp-$000000ac]
00B5B05C BA02000000 mov edx,$00000002
00B5B061 E8AA6C4400 call System::AnsiString::~AnsiString()
00B5B066 FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5B06C 8D8558FFFFFF lea eax,[ebp-$000000a8]
00B5B072 BA02000000 mov edx,$00000002
00B5B077 E8946C4400 call System::AnsiString::~AnsiString()
00B5B07C FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5B082 8D855CFFFFFF lea eax,[ebp-$000000a4]
00B5B088 BA02000000 mov edx,$00000002
00B5B08D E87E6C4400 call System::AnsiString::~AnsiString()
00B5B092 FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5B098 8D8560FFFFFF lea eax,[ebp-$000000a0]
00B5B09E BA02000000 mov edx,$00000002
00B5B0A3 E8686C4400 call System::AnsiString::~AnsiString()
00B5B0A8 FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5B0AE 8D8564FFFFFF lea eax,[ebp-$0000009c]
00B5B0B4 BA02000000 mov edx,$00000002
00B5B0B9 E8526C4400 call System::AnsiString::~AnsiString()
00B5B0BE FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5B0C4 8D8568FFFFFF lea eax,[ebp-$00000098]
00B5B0CA BA02000000 mov edx,$00000002
00B5B0CF E83C6C4400 call System::AnsiString::~AnsiString()
00B5B0D4 FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5B0DA 8D856CFFFFFF lea eax,[ebp-$00000094]
00B5B0E0 BA02000000 mov edx,$00000002
00B5B0E5 E8266C4400 call System::AnsiString::~AnsiString()
00B5B0EA FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5B0F0 8D8570FFFFFF lea eax,[ebp-$00000090]
00B5B0F6 BA02000000 mov edx,$00000002
00B5B0FB E8106C4400 call System::AnsiString::~AnsiString()
00B5B100 FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5B106 8D8574FFFFFF lea eax,[ebp-$0000008c]
00B5B10C BA02000000 mov edx,$00000002
00B5B111 E8FA6B4400 call System::AnsiString::~AnsiString()
00B5B116 FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5B11C 8D4588 lea eax,[ebp-$78]
00B5B11F BA02000000 mov edx,$00000002
00B5B124 E8E76B4400 call System::AnsiString::~AnsiString()
00B5B129 FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5B12F 8D459C lea eax,[ebp-$64]
00B5B132 BA02000000 mov edx,$00000002
00B5B137 E8D46B4400 call System::AnsiString::~AnsiString()
00B5B13C FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5B142 8D45A0 lea eax,[ebp-$60]
00B5B145 BA02000000 mov edx,$00000002
00B5B14A E8C16B4400 call System::AnsiString::~AnsiString()
00B5B14F FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5B155 8D45A4 lea eax,[ebp-$5c]
00B5B158 BA02000000 mov edx,$00000002
00B5B15D E8AE6B4400 call System::AnsiString::~AnsiString()
00B5B162 FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5B168 8D45B4 lea eax,[ebp-$4c]
00B5B16B BA02000000 mov edx,$00000002
00B5B170 E89B6B4400 call System::AnsiString::~AnsiString()
00B5B175 FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5B17B 8D45C4 lea eax,[ebp-$3c]
00B5B17E BA02000000 mov edx,$00000002
00B5B183 E8886B4400 call System::AnsiString::~AnsiString()
00B5B188 FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5B18E 8D45C8 lea eax,[ebp-$38]
00B5B191 BA02000000 mov edx,$00000002
00B5B196 E8756B4400 call System::AnsiString::~AnsiString()
00B5B19B FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5B1A1 8D45D8 lea eax,[ebp-$28]
00B5B1A4 BA02000000 mov edx,$00000002
00B5B1A9 E8626B4400 call System::AnsiString::~AnsiString()
00B5B1AE FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5B1B4 8D45DC lea eax,[ebp-$24]
00B5B1B7 BA02000000 mov edx,$00000002
00B5B1BC E84F6B4400 call System::AnsiString::~AnsiString()
00B5B1C1 FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5B1C7 8D45EC lea eax,[ebp-$14]
00B5B1CA BA02000000 mov edx,$00000002
00B5B1CF E83C6B4400 call System::AnsiString::~AnsiString()
00B5B1D4 FF8DA4FEFFFF dec dword ptr [ebp-$0000015c]
00B5B1DA 8D45FC lea eax,[ebp-$04]
00B5B1DD BA02000000 mov edx,$00000002
00B5B1E2 E8296B4400 call System::AnsiString::~AnsiString()
00B5B1E7 8B8D88FEFFFF mov ecx,[ebp-$00000178]
00B5B1ED 64890D00000000 mov fs:[$00000000],ecx
EDI_Process832U.cpp.577: }
00B5B1F4 8BE5 mov esp,ebp
00B5B1F6 5D pop ebp
00B5B1F7 C3 ret