コード例 #1
0
ファイル: Program.cs プロジェクト: puremourning/netcoredbg
        public void CreateAndCompareVar(string caller_trace, string variable, string val)
        {
            var res = MIDebugger.Request("-var-create - * \"" + variable + "\"");

            Assert.Equal(MIResultClass.Done, res.Class, @"__FILE__:__LINE__" + "\n" + caller_trace);
            Assert.Equal(val, ((MIConst)res["value"]).CString, @"__FILE__:__LINE__" + "\n" + caller_trace);
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: puremourning/netcoredbg
        public void CalcAndCheckExpression(string caller_trace, string ExpectedResult, string expr)
        {
            var res = MIDebugger.Request("-var-create - * \"" + expr + "\"");

            Assert.Equal(MIResultClass.Done, res.Class, @"__FILE__:__LINE__" + "\n" + caller_trace);
            Assert.Equal(ExpectedResult, ((MIConst)res["value"]).CString, @"__FILE__:__LINE__" + "\n" + caller_trace);
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: Samsung/netcoredbg
        public void GetResultAsString(string caller_trace, string expr, out string strRes)
        {
            var res = MIDebugger.Request("-var-create - * \"" + expr + "\"");

            Assert.Equal(MIResultClass.Done, res.Class, @"__FILE__:__LINE__" + "\n" + caller_trace);
            strRes = ((MIConst)res["value"]).CString;
        }
コード例 #4
0
ファイル: Program.cs プロジェクト: puremourning/netcoredbg
        public void CheckEnum(string caller_trace, string VarName, string ExpectedResult)
        {
            var result = MIDebugger.Request(String.Format("-var-create - * \"{0}\"", VarName));

            Assert.Equal(MIResultClass.Done, result.Class, @"__FILE__:__LINE__" + "\n" + caller_trace);
            Assert.Equal(ExpectedResult, ((MIConst)result["value"]).CString, @"__FILE__:__LINE__" + "\n" + caller_trace);
        }
コード例 #5
0
        public void CheckErrorAtRequest(string caller_trace, string Expression, string errMsgStart)
        {
            var res = MIDebugger.Request(String.Format("-var-create - * \"{0}\"", Expression));

            Assert.Equal(MIResultClass.Error, res.Class, @"__FILE__:__LINE__" + "\n" + caller_trace);
            Assert.True(((MIConst)res["msg"]).CString.StartsWith(errMsgStart), @"__FILE__:__LINE__" + "\n" + caller_trace);
        }
コード例 #6
0
        public static bool DoStepTo(string lbpName)
        {
            var lbp = (LineBreakpoint)DebuggeeInfo.Breakpoints[lbpName];

            Assert.Equal(MIResultClass.Running, MIDebugger.Request("-exec-next").Class);

            return(WasStep(lbp));
        }
コード例 #7
0
        public static void CreateAndCompareVar(string variable, string val)
        {
            var res = MIDebugger.Request("-var-create - * \"" + variable + "\"");

            Assert.Equal(MIResultClass.Done, res.Class);

            Assert.Equal(val, ((MIConst)res["value"]).CString);
        }
コード例 #8
0
ファイル: Program.cs プロジェクト: wilvk/dotnet-sos
        public static string CalcExpression(string expr, int token)
        {
            var res = MIDebugger.Request(token.ToString() +
                                         "-var-create - * \"" + expr + "\"");

            Assert.Equal(MIResultClass.Done, res.Class);

            return(((MIConst)res["value"]).CString);
        }
コード例 #9
0
        public void CheckVar(string caller_trace, string varName)
        {
            // varName is equal to it value;
            var res = MIDebugger.Request("-var-create - * \"" + varName + "\"");

            if (res.Class != MIResultClass.Done ||
                ((MIConst)res["value"]).String != "\"" + varName + "\"")
            {
                throw new ResultNotSuccessException(@"__FILE__:__LINE__" + "\n" + caller_trace);
            }
        }
コード例 #10
0
ファイル: Program.cs プロジェクト: wilvk/dotnet-sos
        public static string InsertBreakpoint(Breakpoint bp, int token)
        {
            var res = MIDebugger.Request(token.ToString() + "-break-insert -f " +
                                         bp.ToString());

            if (res.Class != MIResultClass.Done)
            {
                return(null);
            }

            return(((MIConst)((MITuple)res["bkpt"])["number"]).CString);
        }
コード例 #11
0
ファイル: Program.cs プロジェクト: mcumming/netcoredbg
        public string GetAndCheckValue(string caller_trace, string ExpectedResult, string ExpectedType, string Expression)
        {
            var res = MIDebugger.Request(String.Format("-var-create - * \"{0}\"", Expression));

            Assert.Equal(MIResultClass.Done, res.Class, @"__FILE__:__LINE__" + "\n" + caller_trace);

            Assert.Equal(Expression, ((MIConst)res["exp"]).CString, @"__FILE__:__LINE__" + "\n" + caller_trace);
            Assert.Equal(ExpectedType, ((MIConst)res["type"]).CString, @"__FILE__:__LINE__" + "\n" + caller_trace);
            Assert.Equal(ExpectedResult, ((MIConst)res["value"]).CString, @"__FILE__:__LINE__" + "\n" + caller_trace);

            return(((MIConst)res["name"]).CString);
        }
コード例 #12
0
        public static void CreateAndAssignVar(string variable, string val)
        {
            var res = MIDebugger.Request("-var-create - * \"" + variable + "\"");

            Assert.Equal(MIResultClass.Done, res.Class);

            string internalName = ((MIConst)res["name"]).CString;

            Assert.Equal(MIResultClass.Done,
                         MIDebugger.Request("-var-assign " + internalName + " "
                                            + "\"" + val + "\"").Class);
        }
コード例 #13
0
ファイル: Program.cs プロジェクト: puremourning/netcoredbg
        public void CreateAndAssignVar(string caller_trace, string variable, string val)
        {
            var res = MIDebugger.Request("-var-create - * \"" + variable + "\"");

            Assert.Equal(MIResultClass.Done, res.Class, @"__FILE__:__LINE__" + "\n" + caller_trace);

            string internalName = ((MIConst)res["name"]).CString;

            Assert.Equal(MIResultClass.Done,
                         MIDebugger.Request("-var-assign " + internalName + " " + "\"" + val + "\"").Class,
                         @"__FILE__:__LINE__" + "\n" + caller_trace);
        }
コード例 #14
0
ファイル: Program.cs プロジェクト: puremourning/netcoredbg
        public void EnableBreakpoint(string caller_trace, string bpName)
        {
            Breakpoint bp = ControlInfo.Breakpoints[bpName];

            Assert.Equal(BreakpointType.Line, bp.Type, @"__FILE__:__LINE__" + "\n" + caller_trace);

            var lbp = (LineBreakpoint)bp;

            Assert.Equal(MIResultClass.Done,
                         MIDebugger.Request("-break-insert -f " + lbp.FileName + ":" + lbp.NumLine).Class,
                         @"__FILE__:__LINE__" + "\n" + caller_trace);
        }
コード例 #15
0
        public static void EnableBreakpoint(string bpName)
        {
            Breakpoint bp = DebuggeeInfo.Breakpoints[bpName];

            Assert.Equal(BreakpointType.Line, bp.Type);

            var lbp = (LineBreakpoint)bp;

            Assert.Equal(MIResultClass.Done,
                         MIDebugger.Request("-break-insert -f "
                                            + lbp.FileName + ":" + lbp.NumLine).Class);
        }
コード例 #16
0
        public static void Prepare()
        {
            Assert.Equal(MIResultClass.Done,
                         MIDebugger.Request("-file-exec-and-symbols "
                                            + DebuggeeInfo.CorerunPath).Class);

            Assert.Equal(MIResultClass.Done,
                         MIDebugger.Request("-exec-arguments "
                                            + DebuggeeInfo.TargetAssemblyPath).Class);

            Assert.Equal(MIResultClass.Running, MIDebugger.Request("-exec-run").Class);
        }
コード例 #17
0
ファイル: Program.cs プロジェクト: wilvk/dotnet-sos
        public static void CheckVar(string varName)
        {
            // varName is equal to it value;
            var res = MIDebugger.Request("-var-create - * \"" + varName + "\"");

            if (res.Class != MIResultClass.Done ||
                ((MIConst)res["value"]).String != "\"" + varName + "\"")
            {
                Logger.LogLine(((MIConst)res["value"]).String);
                Logger.LogLine(varName);
                throw new NetcoreDbgTestCore.ResultNotSuccessException();
            }
        }
コード例 #18
0
ファイル: Program.cs プロジェクト: puremourning/netcoredbg
        public void Prepare(string caller_trace)
        {
            Assert.Equal(MIResultClass.Done,
                         MIDebugger.Request("-file-exec-and-symbols " + ControlInfo.CorerunPath).Class,
                         @"__FILE__:__LINE__" + "\n" + caller_trace);

            Assert.Equal(MIResultClass.Done,
                         MIDebugger.Request("-exec-arguments " + ControlInfo.TargetAssemblyPath).Class,
                         @"__FILE__:__LINE__" + "\n" + caller_trace);

            Assert.Equal(MIResultClass.Running,
                         MIDebugger.Request("-exec-run").Class,
                         @"__FILE__:__LINE__" + "\n" + caller_trace);
        }
コード例 #19
0
ファイル: Program.cs プロジェクト: mcumming/netcoredbg
        public void GetAndCheckChildValue(string caller_trace, string ExpectedResult, string ExpectedType, string VariableName, string ChildName)
        {
            var res = MIDebugger.Request(String.Format("-var-create - * \"{0}\"", VariableName));

            Assert.Equal(MIResultClass.Done, res.Class, @"__FILE__:__LINE__" + "\n" + caller_trace);

            var var_name = ((MIConst)res["name"]).CString;

            res = MIDebugger.Request("-var-list-children --simple-values " + "\"" + var_name + "\"");
            Assert.Equal(MIResultClass.Done, res.Class, @"__FILE__:__LINE__" + "\n" + caller_trace);

            var    children       = (MIList)res["children"];
            string child_var_name = "";

            for (int i = 0; i < ((MIConst)res["numchild"]).Int; i++)
            {
                var child = (MITuple)((MIResult)children[i]).Value;

                if (((MIConst)child["exp"]).CString == ChildName)
                {
                    Assert.Equal(ExpectedType, ((MIConst)child["type"]).CString, @"__FILE__:__LINE__" + "\n" + caller_trace);
                    Assert.Equal(ExpectedResult, ((MIConst)child["value"]).CString, @"__FILE__:__LINE__" + "\n" + caller_trace);
                    return;
                }

                if (((MIConst)child["exp"]).CString == "Static members")
                {
                    child_var_name = ((MIConst)child["name"]).CString;
                }
            }
            Assert.True(child_var_name != "", @"__FILE__:__LINE__" + "\n" + caller_trace);

            res = MIDebugger.Request("-var-list-children --simple-values " + "\"" + child_var_name + "\"");
            Assert.Equal(MIResultClass.Done, res.Class, @"__FILE__:__LINE__" + "\n" + caller_trace);

            children = (MIList)res["children"];
            for (int i = 0; i < ((MIConst)res["numchild"]).Int; i++)
            {
                var child = (MITuple)((MIResult)children[i]).Value;
                if (((MIConst)child["exp"]).CString == ChildName)
                {
                    Assert.Equal(ExpectedType, ((MIConst)child["type"]).CString, @"__FILE__:__LINE__" + "\n" + caller_trace);
                    Assert.Equal(ExpectedResult, ((MIConst)child["value"]).CString, @"__FILE__:__LINE__" + "\n" + caller_trace);
                    return;
                }
            }

            throw new ResultNotSuccessException(@"__FILE__:__LINE__" + "\n" + caller_trace);
        }
コード例 #20
0
        public static string EnableBreakpoint(string bpName, string bpPath = null)
        {
            Breakpoint bp = DebuggeeInfo.Breakpoints[bpName];

            Assert.Equal(BreakpointType.Line, bp.Type);

            var lbp = (LineBreakpoint)bp;

            var BpResp = MIDebugger.Request("-break-insert -f " + (bpPath != null ? bpPath : lbp.FileName) + ":" + lbp.NumLine);

            Assert.Equal(MIResultClass.Done, BpResp.Class);

            CurrentBpId++;

            // return breakpoint id
            return(((MIConst)((MITuple)BpResp["bkpt"])["number"]).CString);
        }
コード例 #21
0
        public static string GetChildValue(string variable, int childIndex)
        {
            var res = MIDebugger.Request("-var-create - * " +
                                         "\"" + variable + "\"", 2000);

            Assert.Equal(MIResultClass.Done, res.Class);

            string struct2 = ((MIConst)res["name"]).CString;

            res = MIDebugger.Request("-var-list-children --simple-values " +
                                     "\"" + struct2 + "\"");
            Assert.Equal(MIResultClass.Done, res.Class);

            var children = (MIList)res["children"];
            var child    = (MITuple)((MIResult)children[childIndex]).Value;

            return(((MIConst)child["value"]).CString);
        }
コード例 #22
0
        public static string GetChildValue(string variable, int childIndex, bool setEvalFlags, enum_EVALFLAGS evalFlags)
        {
            var res = MIDebugger.Request("-var-create - * " +
                                         "\"" + variable + "\"" +
                                         (setEvalFlags ? (" --evalFlags " + (int)evalFlags) : ""));

            Assert.Equal(MIResultClass.Done, res.Class);

            string struct2 = ((MIConst)res["name"]).CString;

            res = MIDebugger.Request("-var-list-children --simple-values " +
                                     "\"" + struct2 + "\"");
            Assert.Equal(MIResultClass.Done, res.Class);

            var children = (MIList)res["children"];
            var child    = (MITuple)((MIResult)children[childIndex]).Value;

            return(((MIConst)child["value"]).CString);
        }
コード例 #23
0
        public void Prepare(string caller_trace)
        {
            // Explicitly enable JMC for this test.
            Assert.Equal(MIResultClass.Done,
                         MIDebugger.Request("-gdb-set just-my-code 1").Class,
                         @"__FILE__:__LINE__" + "\n" + caller_trace);

            Assert.Equal(MIResultClass.Done,
                         MIDebugger.Request("-file-exec-and-symbols " + ControlInfo.CorerunPath).Class,
                         @"__FILE__:__LINE__" + "\n" + caller_trace);

            Assert.Equal(MIResultClass.Done,
                         MIDebugger.Request("-exec-arguments " + ControlInfo.TargetAssemblyPath).Class,
                         @"__FILE__:__LINE__" + "\n" + caller_trace);

            Assert.Equal(MIResultClass.Running,
                         MIDebugger.Request("-exec-run").Class,
                         @"__FILE__:__LINE__" + "\n" + caller_trace);
        }
コード例 #24
0
ファイル: Program.cs プロジェクト: puremourning/netcoredbg
        public void GetAndCheckChildValue(string caller_trace, string ExpectedResult, string variable,
                                          int childIndex, bool setEvalFlags, enum_EVALFLAGS evalFlags)
        {
            var res = MIDebugger.Request("-var-create - * " +
                                         "\"" + variable + "\"" +
                                         (setEvalFlags ? (" --evalFlags " + (int)evalFlags) : ""));

            Assert.Equal(MIResultClass.Done, res.Class, @"__FILE__:__LINE__" + "\n" + caller_trace);

            string struct2 = ((MIConst)res["name"]).CString;

            res = MIDebugger.Request("-var-list-children --simple-values " +
                                     "\"" + struct2 + "\"");
            Assert.Equal(MIResultClass.Done, res.Class, @"__FILE__:__LINE__" + "\n" + caller_trace);

            var children = (MIList)res["children"];
            var child    = (MITuple)((MIResult)children[childIndex]).Value;

            Assert.Equal(ExpectedResult, ((MIConst)child["value"]).CString, @"__FILE__:__LINE__" + "\n" + caller_trace);
        }
コード例 #25
0
ファイル: Program.cs プロジェクト: puremourning/netcoredbg
 public void Continue(string caller_trace)
 {
     Assert.Equal(MIResultClass.Running,
                  MIDebugger.Request("-exec-continue").Class,
                  @"__FILE__:__LINE__" + "\n" + caller_trace);
 }
コード例 #26
0
ファイル: Program.cs プロジェクト: puremourning/netcoredbg
 public void DebuggerExit(string caller_trace)
 {
     Assert.Equal(MIResultClass.Exit,
                  MIDebugger.Request("-gdb-exit").Class,
                  @"__FILE__:__LINE__" + "\n" + caller_trace);
 }
コード例 #27
0
 public static void Continue()
 {
     Assert.Equal(MIResultClass.Running, MIDebugger.Request("-exec-continue").Class);
 }
コード例 #28
0
ファイル: Program.cs プロジェクト: puremourning/netcoredbg
 public void StepOut(string caller_trace)
 {
     Assert.Equal(MIResultClass.Running,
                  MIDebugger.Request("-exec-finish").Class,
                  @"__FILE__:__LINE__" + "\n" + caller_trace);
 }
コード例 #29
0
 public static void InsertBreakpoint(Breakpoint bp, int token)
 {
     Assert.Equal(MIResultClass.Done,
                  MIDebugger.Request(token.ToString() + "-break-insert -f "
                                     + bp.ToString()).Class);
 }
コード例 #30
0
ファイル: Program.cs プロジェクト: mcumming/netcoredbg
        public void CheckErrorAtRequest(string caller_trace, string Expression)
        {
            var res = MIDebugger.Request(String.Format("-var-create - * \"{0}\"", Expression));

            Assert.Equal(MIResultClass.Error, res.Class, @"__FILE__:__LINE__" + "\n" + caller_trace);
        }