So I want to change a valiable value daynamically.
Repro step
sample9$ cat foo.cs
using System;
namespace HelloWorld
{
class Hello
{
static void Main()
{
string s = "Hello World!";
Console.WriteLine(s);
}
}
}
sample9$ mcs -debug foo.cs
sample9$ sdb 'run foo.exe'
Welcome to the Mono soft debugger (sdb 1.5.6548.37600)
Type 'help' for a list of commands or 'quit' to exit
Inferior process '4040' ('foo.exe') started
Hello World!
Inferior process '4040' ('foo.exe') exited with code '0'
(sdb) bp add at foo.cs 8
Breakpoint '0' added at '/Users/callmekohei/tmp/sample9/foo.cs:8'
(sdb) r
Inferior process '4041' ('foo.exe') started
Hit breakpoint at '/Users/callmekohei/tmp/sample9/foo.cs:8'
#0 [0x00000001] HelloWorld.Hello.Main at /Users/callmekohei/tmp/sample9/foo.cs:8
string s = "Hello World!";
(sdb) env set s abc
(sdb) env
's' = 'abc'
(sdb) s
Inferior process '4041' ('foo.exe') resumed
Inferior process '4041' ('foo.exe') suspended
#0 [0x00000007] HelloWorld.Hello.Main at /Users/callmekohei/tmp/sample9/foo.cs:9
Console.WriteLine(s);
(sdb) p s
string it = "Hello World!"
(sdb) kill
Inferior process '4041' ('foo.exe') exited with code '0'
(sdb) q
Bye
sample9$
Expected
(sdb) p s
string it = "Hello World!"
(sdb) env set s abc
(sdb) env
's' = 'abc'
(sdb) p s
string it = "abc"
Actual
(sdb) p s
string it = "Hello World!"
(sdb) env set s abc
(sdb) env
's' = 'abc'
(sdb) p s
string it = "abc"
It's a bit unintuitive, but basically what you need to do is p s = "abc" instead of env set s abc. env is only for manipulating environment variables for the debuggee.
Hello! I'm
callmekohei
!Problems summary
So I want to change a valiable value daynamically.
Repro step
Expected
Actual