Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(74)

Unified Diff: experimental/visual_studio_plugin/src/NaClVsx.Package/DebugSupport/Thread.cs

Issue 10928195: First round of dead file removal (Closed) Base URL: https://github.com/samclegg/nativeclient-sdk.git@master
Patch Set: Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: experimental/visual_studio_plugin/src/NaClVsx.Package/DebugSupport/Thread.cs
diff --git a/experimental/visual_studio_plugin/src/NaClVsx.Package/DebugSupport/Thread.cs b/experimental/visual_studio_plugin/src/NaClVsx.Package/DebugSupport/Thread.cs
deleted file mode 100644
index 029e7cf29490ad54b22f94918e52853314365b33..0000000000000000000000000000000000000000
--- a/experimental/visual_studio_plugin/src/NaClVsx.Package/DebugSupport/Thread.cs
+++ /dev/null
@@ -1,192 +0,0 @@
-// Copyright (c) 2011 The Native Client Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#region
-
-using System;
-using System.Collections.Generic;
-using System.Diagnostics;
-using Google.MsAd7.BaseImpl;
-using Google.MsAd7.BaseImpl.Ad7Enumerators;
-using Google.MsAd7.BaseImpl.DebugProperties;
-using Microsoft.VisualStudio;
-using Microsoft.VisualStudio.Debugger.Interop;
-using NaClVsx.DebugHelpers;
-using StackFrame = Google.MsAd7.BaseImpl.StackFrame;
-
-#endregion
-
-namespace Google.NaClVsx.DebugSupport {
- public class Thread : IDebugThread2 {
- public Thread(ProgramNode program, string name, uint tid) {
- name_ = name;
- tid_ = tid;
- program_ = program;
- }
-
- #region Implementation of IDebugThread2
-
- public List<StackFrame> GetStack() {
- return stack_;
- }
-
- /// <summary>
- /// Called by the Visual Studio Debugger to retrieve the stack frames for
- /// this thread. On halt, this will be called on each thread. Detailed
- /// information about the arguments and required usage can be found on
- /// msdn.
- /// </summary>
- public int EnumFrameInfo(enum_FRAMEINFO_FLAGS dwFieldSpec,
- uint nRadix,
- out IEnumDebugFrameInfo2 ppEnum) {
- Debug.WriteLine("Thread.EnumFrameInfo");
-
- RefreshFrameInfo(stack_);
-
- var frames = new List<FRAMEINFO>(stack_.Count);
- var fi = new FRAMEINFO[1];
-
- foreach (var stackFrame in stack_) {
- stackFrame.GetInfo(dwFieldSpec, nRadix, fi);
- frames.Add(fi[0]);
- }
-
- ppEnum = new FrameInfoEnumerator(frames);
-
- return VSConstants.S_OK;
- }
-
- public int GetName(out string pbstrName) {
- Debug.WriteLine("Thread.GetName");
- pbstrName = name_;
- return VSConstants.S_OK;
- }
-
- public int SetThreadName(string pszName) {
- Debug.WriteLine("Thread.SetThreadName");
- name_ = pszName;
- return VSConstants.S_OK;
- }
-
- public int GetProgram(out IDebugProgram2 ppProgram) {
- Debug.WriteLine("Thread.GetProgram");
- ppProgram = program_;
- return VSConstants.S_OK;
- }
-
- public int CanSetNextStatement(IDebugStackFrame2 pStackFrame,
- IDebugCodeContext2 pCodeContext) {
- Debug.WriteLine("Thread.CanSetNextStatement");
-
- // For now, we just don't support this.
- return VSConstants.S_FALSE;
- }
-
- public int SetNextStatement(IDebugStackFrame2 pStackFrame,
- IDebugCodeContext2 pCodeContext) {
- Debug.WriteLine("Thread.SetNextStatement");
- throw new NotImplementedException();
- }
-
- public int GetThreadId(out uint pdwThreadId) {
- Debug.WriteLine("Thread.GetThreadId");
- pdwThreadId = tid_;
- return VSConstants.S_OK;
- }
-
- public int Suspend(out uint pdwSuspendCount) {
- Debug.WriteLine("Thread.Suspend");
- throw new NotImplementedException();
- }
-
- public int Resume(out uint pdwSuspendCount) {
- Debug.WriteLine("Thread.Resume");
- throw new NotImplementedException();
- }
-
- public int GetThreadProperties(enum_THREADPROPERTY_FIELDS dwFields,
- THREADPROPERTIES[] ptp) {
- Debug.WriteLine("Thread.GetThreadProperties");
- if (dwFields.HasFlag(enum_THREADPROPERTY_FIELDS.TPF_ID)) {
- ptp[0].dwThreadId = tid_;
- }
- if (dwFields.HasFlag(enum_THREADPROPERTY_FIELDS.TPF_NAME)) {
- ptp[0].bstrName = name_;
- }
-
- // The following properties are currently bogus.
- //
- if (dwFields.HasFlag(enum_THREADPROPERTY_FIELDS.TPF_LOCATION)) {
- ptp[0].bstrLocation = "THREADPROPERTY: Location";
- }
- if (dwFields.HasFlag(enum_THREADPROPERTY_FIELDS.TPF_PRIORITY)) {
- ptp[0].bstrPriority = "THREADPROPERTY: Priority";
- }
- if (dwFields.HasFlag(enum_THREADPROPERTY_FIELDS.TPF_STATE)) {
- ptp[0].dwThreadState = (uint) enum_THREADSTATE.THREADSTATE_STOPPED;
- }
- if (dwFields.HasFlag(enum_THREADPROPERTY_FIELDS.TPF_SUSPENDCOUNT)) {
- ptp[0].dwSuspendCount = 1;
- }
-
- ptp[0].dwFields = dwFields;
-
- return VSConstants.S_OK;
- }
-
- public int GetLogicalThread(IDebugStackFrame2 pStackFrame,
- out IDebugLogicalThread2 ppLogicalThread) {
- Debug.WriteLine("Thread.GetLogicalThread");
- throw new NotImplementedException();
- }
-
- #endregion
-
- #region Private Implementation
-
- private readonly ProgramNode program_;
-
- private readonly List<StackFrame> stack_ = new List<StackFrame>();
- private readonly uint tid_;
- private string name_;
-
- #endregion
-
- /// <summary>
- /// Gets the frame information for the current stack frame. This means
- /// getting a snapshot of the register state for each each frame in the
- /// stack so that memory address information can be derived at a later
- /// stage.
- /// </summary>
- /// <param name = "stack"></param>
- protected void RefreshFrameInfo(List<StackFrame> stack) {
- stack.Clear();
- var regs = (RegsX86_64) program_.Dbg.GetRegisters(tid_);
- var rset = new RegisterSet(RegisterSetSchema.DwarfAmd64Integer, null);
-
- // TODO: need a less hacky way to initialize a RegisterSet from a
- // RegsX86_64.
- foreach (
- var registerDef in
- RegisterSetSchema.DwarfAmd64Integer.Registers) {
- if (!registerDef.Pseudo) {
- rset[registerDef.Index] = regs[registerDef.Index];
- }
- }
- while (rset["RIP"] != 0) {
- stack.Add(new StackFrame(rset, this, program_.MainModule, program_.Dbg));
- // Get the register values of the previous frame.
- var sym = program_.Dbg.Symbols as NaClSymbolProvider;
- var nextRset = sym.GetPreviousFrameState(rset);
- // The toolchain creates a dummy frame at the outermost scope. Gdb
- // has some way to get past the dummy frame, but strict application of
- // the DWARF spec makes it look circular to us. TODO: investigate why
- if (nextRset == null || nextRset["RIP"] == rset["RIP"]) {
- break;
- }
- rset = nextRset;
- }
- }
- }
-}

Powered by Google App Engine
This is Rietveld 408576698