AvalonStudio.Debugging.InstructionLine.FromDataString C# (CSharp) Method

FromDataString() public static method

public static FromDataString ( string data ) : InstructionLine
data string
return InstructionLine
		public static InstructionLine FromDataString(string data)
		{
			var result = new InstructionLine();

			var pairs = data.ToNameValuePairs();

			foreach (var pair in pairs)
			{
				switch (pair.Name)
				{
					case "address":
						result.Address = Convert.ToUInt64(pair.Value.Substring(2), 16);
						break;

					case "func-name":
						result.FunctionName = pair.Value;
						break;

					case "offset":
						result.Offset = Convert.ToInt32(pair.Value);
						break;

					case "opcodes":
						result.OpCodes = pair.Value;
						break;

					case "inst":
						result.Instruction = pair.Value.Replace("\\t", "\t");
						break;

					default:
						break; //throw new NotImplementedException ();
				}
			}

			return result;
		}
	}

Usage Example

Example #1
0
        public static List <InstructionLine> FromDataString(string data)
        {
            var result = new List <InstructionLine>();

            var pairs = data.ToNameValuePairs();

            if (data[0] == '{')
            {
                result = new List <InstructionLine>();

                result.Add(InstructionLine.FromDataString(data.RemoveBraces()));
            }
            //else
            //{
            //    foreach (var pair in pairs)
            //    {
            //        switch (pair.Name)
            //        {
            //            case "src_and_asm_line":
            //                var mixedPairs = pair.Value.RemoveBraces ().ToNameValues ();
            //                var sourceLine = new SourceLine ();
            //                var instructionLines = new List<InstructionLine> ();
            //                foreach (var internalPair in mixedPairs)
            //                {
            //                    switch (internalPair.Name)
            //                    {
            //                        case "line":
            //                            sourceLine.Line = Convert.ToInt32 (internalPair.Value);
            //                            break;

            //                        case "file":
            //                            sourceLine.File = internalPair.Value;
            //                            break;

            //                        case "fullname":
            //                            sourceLine.FullFileName = internalPair.Value;
            //                            break;

            //                        case "line_asm_insn":
            //                            var instructions = internalPair.Value.ToArray ();

            //                            foreach (var instruction in instructions)
            //                            {
            //                                instructionLines.Add (InstructionLine.FromDataString (instruction.RemoveBraces ()));
            //                            }
            //                            break;

            //                        default:
            //                            throw new NotImplementedException ();
            //                    }
            //                }

            //                result.Add (sourceLine);
            //                result.AddRange (instructionLines);
            //                break;

            //            default:
            //                throw new NotImplementedException ();
            //        }
            //}
            //}

            return(result);
        }