Browse Source

Added debugger test: SetIP

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@893 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
David Srbecký 20 years ago
parent
commit
b8447a8bfa
  1. 10
      src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Threads/SourcecodeSegment.cs
  2. 1
      src/AddIns/Misc/Debugger/Debugger.Tests/Project/Debugger.Tests.csproj
  3. 17
      src/AddIns/Misc/Debugger/Debugger.Tests/Project/Src/DebuggerTests.cs
  4. 1
      src/AddIns/Misc/Debugger/Debugger.Tests/Project/Src/TestProgram.cs
  5. 20
      src/AddIns/Misc/Debugger/Debugger.Tests/Project/Src/TestPrograms/SetIP.cs

10
src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Threads/SourcecodeSegment.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
// <file>
// <file>
// <copyright see="prj:///doc/copyright.txt">2002-2005 AlphaSierraPapa</copyright>
// <license see="prj:///doc/license.txt">GNU General Public License</license>
// <owner name="David Srbecký" email="dsrbecky@gmail.com"/>
@ -191,9 +191,13 @@ namespace Debugger @@ -191,9 +191,13 @@ namespace Debugger
if (symDoc == null) {
return false; //Not found
}
int validLine;
validLine = symDoc.FindClosestLine(StartLine);
try {
validLine = symDoc.FindClosestLine(StartLine);
} catch {
return false; //Not found
}
if (validLine != StartLine) {
if (normailize) {
StartLine = validLine;

1
src/AddIns/Misc/Debugger/Debugger.Tests/Project/Debugger.Tests.csproj

@ -52,6 +52,7 @@ @@ -52,6 +52,7 @@
<Compile Include="Src\TestPrograms\ObjectValue.cs" />
<Compile Include="Src\TestPrograms\PropertyVariable.cs" />
<Compile Include="Src\TestPrograms\PropertyVariableForm.cs" />
<Compile Include="Src\TestPrograms\SetIP.cs" />
</ItemGroup>
<ItemGroup>
<Folder Include="Src" />

17
src/AddIns/Misc/Debugger/Debugger.Tests/Project/Src/DebuggerTests.cs

@ -522,5 +522,22 @@ namespace Debugger.Tests @@ -522,5 +522,22 @@ namespace Debugger.Tests
debugger.Continue();
debugger.WaitForPrecessExit();
}
[Test]
public void SetIP()
{
StartProgram("SetIP");
WaitForPause(PausedReason.Break, "1");
Assert.IsNotNull(debugger.CurrentFunction.CanSetIP("SetIP.cs", 16, 0));
Assert.IsNull(debugger.CurrentFunction.CanSetIP("SetIP.cs", 100, 0));
debugger.CurrentFunction.SetIP("SetIP.cs", 16, 0);
debugger.Continue();
WaitForPause(PausedReason.Break, "1");
Assert.AreEqual("1\r\n1\r\n", log);
debugger.Continue();
debugger.WaitForPrecessExit();
}
}
}

1
src/AddIns/Misc/Debugger/Debugger.Tests/Project/Src/TestProgram.cs

@ -31,6 +31,7 @@ namespace Debugger.Tests @@ -31,6 +31,7 @@ namespace Debugger.Tests
case "ObjectValue": Progs.ObjectValue.Main(); break;
case "PropertyVariable": Progs.PropertyVariable.Main(); break;
case "PropertyVariableForm": Progs.PropertyVariableForm.Main(); break;
case "SetIP": Progs.SetIP.Main(); break;
case "SimpleProgram": Progs.SimpleProgram.Main(); break;
case "Stepping": Progs.Stepping.Main(); break;
case "Symbols": Progs.Symbols.Main(); break;

20
src/AddIns/Misc/Debugger/Debugger.Tests/Project/Src/TestPrograms/SetIP.cs

@ -0,0 +1,20 @@ @@ -0,0 +1,20 @@
// <file>
// <copyright see="prj:///doc/copyright.txt">2002-2005 AlphaSierraPapa</copyright>
// <license see="prj:///doc/license.txt">GNU General Public License</license>
// <owner name="David Srbecký" email="dsrbecky@gmail.com"/>
// <version>$Revision$</version>
// </file>
using System;
namespace Debugger.Tests.TestPrograms
{
public class SetIP
{
public static void Main()
{
System.Diagnostics.Debug.WriteLine("1");
System.Diagnostics.Debugger.Break();
}
}
}
Loading…
Cancel
Save