Example #1
0
        public override AssemblyLine[] Disassemble(int frameIndex, int firstLine, int count)
        {
            CheckDisposed();
            if (disBuffers == null)
            {
                disBuffers = new MdbDissassemblyBuffer [frames.Length];
            }

            MD.StackFrame      frame  = frames [frameIndex];
            DissassemblyBuffer buffer = disBuffers [frameIndex];

            if (buffer == null)
            {
                buffer = new MdbDissassemblyBuffer(frame.Thread, frame.TargetAddress);
                disBuffers [frameIndex] = buffer;
            }

            return(buffer.GetLines(firstLine, firstLine + count - 1));
        }
Example #2
0
        public AssemblyLine[] Disassemble(int frameIndex, int firstLine, int count)
        {
            SelectFrame(frameIndex);
            if (disBuffers == null)
            {
                disBuffers = new DissassemblyBuffer[fcount];
            }

            DissassemblyBuffer buffer = disBuffers[frameIndex];

            if (buffer == null)
            {
                ResultData data = session.RunCommand("-stack-info-frame");
                long       addr = long.Parse(data.GetObject("frame").GetValue("addr").Substring(2), NumberStyles.HexNumber);
                buffer = new GdbDissassemblyBuffer(session, addr);
                disBuffers[frameIndex] = buffer;
            }

            return(buffer.GetLines(firstLine, firstLine + count - 1));
        }