ThreadPlanStepInstruction.h revision 008f3dc79c762b7d240b5ad6d4fb148c5cb039ca
1411bb7237e5148dc398ae0f3e53ea5f2eb4402decaryclark@google.com//===-- ThreadPlanStepInstruction.h -----------------------------*- C++ -*-===// 2451bb9f801d668275394ca5bd57f238e13cf3d17keyar@chromium.org// 3451bb9f801d668275394ca5bd57f238e13cf3d17keyar@chromium.org// The LLVM Compiler Infrastructure 4451bb9f801d668275394ca5bd57f238e13cf3d17keyar@chromium.org// 5451bb9f801d668275394ca5bd57f238e13cf3d17keyar@chromium.org// This file is distributed under the University of Illinois Open Source 6451bb9f801d668275394ca5bd57f238e13cf3d17keyar@chromium.org// License. See LICENSE.TXT for details. 7451bb9f801d668275394ca5bd57f238e13cf3d17keyar@chromium.org// 8451bb9f801d668275394ca5bd57f238e13cf3d17keyar@chromium.org//===----------------------------------------------------------------------===// 9451bb9f801d668275394ca5bd57f238e13cf3d17keyar@chromium.org 10a62da2fee72172a630c2d1dba0e529b357743662scroggo@google.com#ifndef liblldb_ThreadPlanStepInstruction_h_ 11161e1ba4c0a82e21c7d68808529699fd2394ad6cscroggo@google.com#define liblldb_ThreadPlanStepInstruction_h_ 12a62da2fee72172a630c2d1dba0e529b357743662scroggo@google.com 13a36223764466c964ed1035bf6f152ba55168f61ecaryclark@google.com// C Includes 14f4959ab11827bef99e8985031feb457cae1f987akeyar@chromium.org// C++ Includes 15ea6a306457e23d579ee86cd705c83e4e1e0693c3reed@google.com// Other libraries and framework includes 169a4125283ad56cea3b986337cb669dde14bf0ed8scroggo@google.com// Project includes 17770963f23f4fc313db0fa3bac18b1b8aafb55f17robertphillips@google.com#include "lldb/lldb-private.h" 18acfb30e5bb797249f4ec41edda4c4d4b86e0e5d0scroggo@google.com#include "lldb/Target/Thread.h" 19451bb9f801d668275394ca5bd57f238e13cf3d17keyar@chromium.org#include "lldb/Target/ThreadPlan.h" 20a62da2fee72172a630c2d1dba0e529b357743662scroggo@google.com 219a4125283ad56cea3b986337cb669dde14bf0ed8scroggo@google.comnamespace lldb_private { 22a62da2fee72172a630c2d1dba0e529b357743662scroggo@google.com 23a62da2fee72172a630c2d1dba0e529b357743662scroggo@google.comclass ThreadPlanStepInstruction : public ThreadPlan 24a62da2fee72172a630c2d1dba0e529b357743662scroggo@google.com{ 25451bb9f801d668275394ca5bd57f238e13cf3d17keyar@chromium.orgpublic: 260612564bb76ec533d26d87e03368fd81ef97831ekeyar@chromium.org virtual ~ThreadPlanStepInstruction (); 270612564bb76ec533d26d87e03368fd81ef97831ekeyar@chromium.org 280612564bb76ec533d26d87e03368fd81ef97831ekeyar@chromium.org virtual void GetDescription (Stream *s, lldb::DescriptionLevel level); 290612564bb76ec533d26d87e03368fd81ef97831ekeyar@chromium.org virtual bool ValidatePlan (Stream *error); 300612564bb76ec533d26d87e03368fd81ef97831ekeyar@chromium.org virtual bool ShouldStop (Event *event_ptr); 3190c0fbd34947b6b644e90c5b2253752035f65b64commit-bot@chromium.org virtual bool StopOthers (); 3290c0fbd34947b6b644e90c5b2253752035f65b64commit-bot@chromium.org virtual lldb::StateType GetPlanRunState (); 33451bb9f801d668275394ca5bd57f238e13cf3d17keyar@chromium.org virtual bool WillStop (); 34451bb9f801d668275394ca5bd57f238e13cf3d17keyar@chromium.org virtual bool MischiefManaged (); 356177e6999d23a4268ffd98dedfb1da00e272a89brobertphillips@google.com 36a62da2fee72172a630c2d1dba0e529b357743662scroggo@google.comprotected: 37451bb9f801d668275394ca5bd57f238e13cf3d17keyar@chromium.org virtual bool DoPlanExplainsStop (Event *event_ptr); 38451bb9f801d668275394ca5bd57f238e13cf3d17keyar@chromium.org 39451bb9f801d668275394ca5bd57f238e13cf3d17keyar@chromium.org ThreadPlanStepInstruction (Thread &thread, 40cbcef708914f3b5e9bb63ad3d87261378026e29bscroggo@google.com bool step_over, 41cbcef708914f3b5e9bb63ad3d87261378026e29bscroggo@google.com bool stop_others, 42451bb9f801d668275394ca5bd57f238e13cf3d17keyar@chromium.org Vote stop_vote, 43cbcef708914f3b5e9bb63ad3d87261378026e29bscroggo@google.com Vote run_vote); 44451bb9f801d668275394ca5bd57f238e13cf3d17keyar@chromium.org 45c81686cd6edba2cfedcfd5ad6a164f160ddfb49fkeyar@chromium.orgprivate: 460556ea0ede7066b9b3ed9f03f5a6eb72cd718897scroggo@google.com friend lldb::ThreadPlanSP 470556ea0ede7066b9b3ed9f03f5a6eb72cd718897scroggo@google.com Thread::QueueThreadPlanForStepSingleInstruction (bool step_over, bool abort_other_plans, bool stop_other_threads); 480556ea0ede7066b9b3ed9f03f5a6eb72cd718897scroggo@google.com 496ab96733b85cebac99b378f998cd7dc10b286395rmistry@google.com lldb::addr_t m_instruction_addr; 506ab96733b85cebac99b378f998cd7dc10b286395rmistry@google.com bool m_stop_other_threads; 516ab96733b85cebac99b378f998cd7dc10b286395rmistry@google.com bool m_step_over; 52c81686cd6edba2cfedcfd5ad6a164f160ddfb49fkeyar@chromium.org // This is used only for the step over case. 53c81686cd6edba2cfedcfd5ad6a164f160ddfb49fkeyar@chromium.org StackID m_stack_id; 540556ea0ede7066b9b3ed9f03f5a6eb72cd718897scroggo@google.com 550fd5270ad69f5b99852d544158c989d2deda2c11commit-bot@chromium.org DISALLOW_COPY_AND_ASSIGN (ThreadPlanStepInstruction); 56c81686cd6edba2cfedcfd5ad6a164f160ddfb49fkeyar@chromium.org 57c81686cd6edba2cfedcfd5ad6a164f160ddfb49fkeyar@chromium.org}; 58c81686cd6edba2cfedcfd5ad6a164f160ddfb49fkeyar@chromium.org 599313ca4bde606a18f29214eea8b8e47312b8fd9cjunov@chromium.org 609313ca4bde606a18f29214eea8b8e47312b8fd9cjunov@chromium.org} // namespace lldb_private 61c22d1398089fdb95480fb3459b23e4931e4f5280commit-bot@chromium.org 629313ca4bde606a18f29214eea8b8e47312b8fd9cjunov@chromium.org#endif // liblldb_ThreadPlanStepInstruction_h_ 637b53706a7d596a2d8dce6cfe5b543264e5a37239junov@chromium.org