Browse Source

Fixed SD2-1651 - Crash in debugger when showing value of variable with value string.Empty

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@5567 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
pull/1/head
David Srbecký 16 years ago
parent
commit
3222eb6970
  1. 3
      src/AddIns/Debugger/Debugger.Core/Interop/Util.cs
  2. 13
      src/AddIns/Debugger/Debugger.Tests/Tests/ExpressionEvaluator_Tests.cs

3
src/AddIns/Debugger/Debugger.Core/Interop/Util.cs

@ -44,6 +44,9 @@ namespace Debugger.Interop @@ -44,6 +44,9 @@ namespace Debugger.Interop
{
string managedString;
// DebugStringValue does not like buffer size of 0
defaultBufferSize = Math.Max(defaultBufferSize, 1);
char[] buffer = new char[(int)defaultBufferSize];
fixed(char* pBuffer = buffer) {
uint actualLength = 0;

13
src/AddIns/Debugger/Debugger.Tests/Tests/ExpressionEvaluator_Tests.cs

@ -127,6 +127,7 @@ namespace Debugger.Tests @@ -127,6 +127,7 @@ namespace Debugger.Tests
int* iPtr = &i;
float pi = 3.14f;
string hi = "hi";
string emptyString = "";
char[] array = "Hello".ToCharArray();
char[] array2 = "world".ToCharArray();
@ -166,7 +167,7 @@ namespace Debugger.Tests { @@ -166,7 +167,7 @@ namespace Debugger.Tests {
b; i; *i; *iPtr; pi
pi - 3; pi + b; i + b; (uint)2 - 3; ((uint)2 - 3).GetType() ; (ulong)2 - 3 ; (b + b).GetType()
1 << 4; 7 << -1; 1 << (uint)2; 1.0 & 2.0; System.Int32.MaxValue + 1; (uint)2 - (uint)3; 1 / 0
hi + hi; hi + ''#''; hi + pi; hi + null
hi + hi; hi + ''#''; hi + pi; hi + null; emptyString; ''''
hi + ''#'' == ''hi#''; hi + ''#'' == (object) ''hi#''; hi == (string)null; hi == null; hi == 1; null == null
(5 + 6) % (1 + 2); 3 % 2 == 1
@ -313,9 +314,9 @@ namespace Debugger.Tests { @@ -313,9 +314,9 @@ namespace Debugger.Tests {
<ProcessStarted />
<ModuleLoaded>mscorlib.dll (No symbols)</ModuleLoaded>
<ModuleLoaded>ExpressionEvaluator_Tests.exe (Has symbols)</ModuleLoaded>
<DebuggingPaused>Break ExpressionEvaluator_Tests.cs:146,4-146,40</DebuggingPaused>
<DebuggingPaused>StepComplete ExpressionEvaluator_Tests.cs:147,4-147,19</DebuggingPaused>
<DebuggingPaused>StepComplete ExpressionEvaluator_Tests.cs:148,4-148,39</DebuggingPaused>
<DebuggingPaused>Break ExpressionEvaluator_Tests.cs:147,4-147,40</DebuggingPaused>
<DebuggingPaused>StepComplete ExpressionEvaluator_Tests.cs:148,4-148,19</DebuggingPaused>
<DebuggingPaused>StepComplete ExpressionEvaluator_Tests.cs:149,4-149,39</DebuggingPaused>
<Eval> </Eval>
<Eval> b = 1 </Eval>
<Eval> i = 4 </Eval>
@ -340,6 +341,8 @@ namespace Debugger.Tests { @@ -340,6 +341,8 @@ namespace Debugger.Tests {
<Eval> hi + "#" = "hi#" </Eval>
<Eval> hi + pi = "hi3.14" </Eval>
<Eval> hi + null = "hi" </Eval>
<Eval> emptyString = "" </Eval>
<Eval> "" = "" </Eval>
<Eval> hi + "#" == "hi#" = True </Eval>
<Eval> hi + "#" == (object) "hi#" = False </Eval>
<Eval> hi == (string)null = False </Eval>
@ -451,7 +454,7 @@ namespace Debugger.Tests { @@ -451,7 +454,7 @@ namespace Debugger.Tests {
<TypesIdentitcal>True</TypesIdentitcal>
<TypesEqual>True</TypesEqual>
<WorkerThreadMoved>False</WorkerThreadMoved>
<DebuggingPaused>Break ExpressionEvaluator_Tests.cs:149,4-149,40</DebuggingPaused>
<DebuggingPaused>Break ExpressionEvaluator_Tests.cs:150,4-150,40</DebuggingPaused>
<WorkerThreadMoved>True</WorkerThreadMoved>
<ProcessExited />
</Test>

Loading…
Cancel
Save