[Lldb-commits] [PATCH] D12977: LLDB MI addition for getting process stopped at first instruction right after launch via -exec-run

Ilia K via lldb-commits lldb-commits at lists.llvm.org
Tue Sep 29 00:57:51 PDT 2015


ki.stfu accepted this revision.
ki.stfu added a comment.

lgtm apart a lack of description about the changes in tools/lldb-mi/MICmdCmdSupportList.cpp


================
Comment at: tools/lldb-mi/MICmdCmdExec.h:58
@@ -57,2 +57,3 @@
     bool Acknowledge() override;
+    bool ParseArgs() override;
     // From CMICmnBase
----------------
KLapshin wrote:
> Ilia, I checked string positions for ParseArgs() method in MICmdCmdExec.h and other command headers - ParseArgs() placed always third, so this change done in accordance with current, at least public, lldb-mi headers and minimal patching as possible.
> 
> What inconsistency you mentioned ?
> 
> Please take a look on ExecRun command class modified with ParseArgs() method added and non-modified classes in lldb-mi - ExecFinish or ExecNext, for example:
> 
> 
> ```
> class CMICmdCmdExecRun : public CMICmdBase
> {
>     // Statics:
>   public:
>     // Required by the CMICmdFactory when registering *this command
>     static CMICmdBase *CreateSelf();
> 
>     // Methods:
>   public:
>     /* ctor */ CMICmdCmdExecRun();
> 
>     // Overridden:
>   public:
>     // From CMICmdInvoker::ICmd
>     bool Execute() override;
>     bool Acknowledge() override;
>     bool ParseArgs() override;
>     // From CMICmnBase
>     /* dtor */ ~CMICmdCmdExecRun() override;
> 
>     // Attributes:
>   private:
>     lldb::SBCommandReturnObject m_lldbResult;
>     const CMIUtilString m_constStrArgStart; // StopAtEntry - run to first instruction or main(), just run process if not specified
> };
> ```
> 
> 
> ```
> class CMICmdCmdExecFinish : public CMICmdBase
> {
>     // Statics:
>   public:
>     // Required by the CMICmdFactory when registering *this command
>     static CMICmdBase *CreateSelf();
> 
>     // Methods:
>   public:
>     /* ctor */ CMICmdCmdExecFinish();
> 
>     // Overridden:
>   public:
>     // From CMICmdInvoker::ICmd
>     bool Execute() override;
>     bool Acknowledge() override;
>     bool ParseArgs() override;  <---
>     // From CMICmnBase
>     /* dtor */ ~CMICmdCmdExecFinish() override;
> 
>     // Attributes:
>   private:
>     lldb::SBCommandReturnObject m_lldbResult;
>     const CMIUtilString m_constStrArgThread; // Not specified in MI spec but Eclipse gives this option
>     const CMIUtilString m_constStrArgFrame;  // Not specified in MI spec but Eclipse gives this option
> };
> ```
Ok, I see that it's already in consistency with others. I was baffled because ::ParseArgs() is followed by ::Execute() in source files.


Repository:
  rL LLVM

http://reviews.llvm.org/D12977





More information about the lldb-commits mailing list