diff options
-rw-r--r-- | lldb/tools/lldb-mi/MICmdCmdMiscellanous.cpp | 47 |
1 files changed, 28 insertions, 19 deletions
diff --git a/lldb/tools/lldb-mi/MICmdCmdMiscellanous.cpp b/lldb/tools/lldb-mi/MICmdCmdMiscellanous.cpp index c3e9507d109..b09f585598a 100644 --- a/lldb/tools/lldb-mi/MICmdCmdMiscellanous.cpp +++ b/lldb/tools/lldb-mi/MICmdCmdMiscellanous.cpp @@ -282,11 +282,14 @@ bool CMICmdCmdListThreadGroups::Acknowledge( void ) miTuple.Add( miValueResult2 ); CMICmnLLDBDebugSessionInfo & rSessionInfo( CMICmnLLDBDebugSessionInfo::Instance() ); - const lldb::pid_t pid = rSessionInfo.m_lldbProcess.GetProcessID(); - const CMIUtilString strPid( CMIUtilString::Format( "%lld", pid ) ); - const CMICmnMIValueConst miValueConst3( strPid ); - const CMICmnMIValueResult miValueResult3( "pid", miValueConst3 ); - miTuple.Add( miValueResult3 ); + if (rSessionInfo.m_lldbProcess.IsValid ()) + { + const lldb::pid_t pid = rSessionInfo.m_lldbProcess.GetProcessID(); + const CMIUtilString strPid( CMIUtilString::Format( "%lld", pid ) ); + const CMICmnMIValueConst miValueConst3( strPid ); + const CMICmnMIValueResult miValueResult3( "pid", miValueConst3 ); + miTuple.Add( miValueResult3 ); + } const CMICmnMIValueConst miValueConst4( MIRSRC( IDS_WORD_NOT_IMPLEMENTED_BRKTS ) ); const CMICmnMIValueResult miValueResult4( "num_children", miValueConst4 ); @@ -315,19 +318,25 @@ bool CMICmdCmdListThreadGroups::Acknowledge( void ) miTuple.Add( miValueResult2 ); CMICmnLLDBDebugSessionInfo & rSessionInfo( CMICmnLLDBDebugSessionInfo::Instance() ); - const lldb::pid_t pid = rSessionInfo.m_lldbProcess.GetProcessID(); - const CMIUtilString strPid( CMIUtilString::Format( "%lld", pid ) ); - const CMICmnMIValueConst miValueConst3( strPid ); - const CMICmnMIValueResult miValueResult3( "pid", miValueConst3 ); - miTuple.Add( miValueResult3 ); - - lldb::SBTarget & rTrgt = rSessionInfo.m_lldbTarget; - const MIchar * pDir = rTrgt.GetExecutable().GetDirectory(); - const MIchar * pFileName = rTrgt.GetExecutable().GetFilename(); - const CMIUtilString strFile( CMIUtilString::Format( "%s/%s", pDir, pFileName ) ); - const CMICmnMIValueConst miValueConst4( strFile ); - const CMICmnMIValueResult miValueResult4( "executable", miValueConst4 ); - miTuple.Add( miValueResult4 ); + if (rSessionInfo.m_lldbProcess.IsValid ()) + { + const lldb::pid_t pid = rSessionInfo.m_lldbProcess.GetProcessID(); + const CMIUtilString strPid( CMIUtilString::Format( "%lld", pid ) ); + const CMICmnMIValueConst miValueConst3( strPid ); + const CMICmnMIValueResult miValueResult3( "pid", miValueConst3 ); + miTuple.Add( miValueResult3 ); + } + + if (rSessionInfo.m_lldbTarget.IsValid ()) + { + lldb::SBTarget & rTrgt = rSessionInfo.m_lldbTarget; + const MIchar * pDir = rTrgt.GetExecutable().GetDirectory(); + const MIchar * pFileName = rTrgt.GetExecutable().GetFilename(); + const CMIUtilString strFile( CMIUtilString::Format( "%s/%s", pDir, pFileName ) ); + const CMICmnMIValueConst miValueConst4( strFile ); + const CMICmnMIValueResult miValueResult4( "executable", miValueConst4 ); + miTuple.Add( miValueResult4 ); + } const CMICmnMIValueList miValueList( miTuple ); const CMICmnMIValueResult miValueResult5( "groups", miValueList ); @@ -576,4 +585,4 @@ bool CMICmdCmdInferiorTtySet::Acknowledge( void ) CMICmdBase * CMICmdCmdInferiorTtySet::CreateSelf( void ) { return new CMICmdCmdInferiorTtySet(); -}
\ No newline at end of file +} |