[Lldb-commits] [lldb] r180868 - Reverting 180831 as it crashes TestDefaultConstructorForAPIObjects.py
Daniel Malea
daniel.malea at intel.com
Wed May 1 12:11:57 PDT 2013
Author: dmalea
Date: Wed May 1 14:11:56 2013
New Revision: 180868
URL: http://llvm.org/viewvc/llvm-project?rev=180868&view=rev
Log:
Reverting 180831 as it crashes TestDefaultConstructorForAPIObjects.py
Modified:
lldb/trunk/include/lldb/API/SBProcess.h
lldb/trunk/include/lldb/Target/Process.h
lldb/trunk/source/API/SBProcess.cpp
lldb/trunk/source/Commands/CommandObjectProcess.cpp
lldb/trunk/source/Interpreter/CommandObject.cpp
lldb/trunk/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp
lldb/trunk/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.h
lldb/trunk/source/Plugins/Process/POSIX/ProcessPOSIX.cpp
lldb/trunk/source/Plugins/Process/POSIX/ProcessPOSIX.h
lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h
lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
lldb/trunk/source/Target/Process.cpp
Modified: lldb/trunk/include/lldb/API/SBProcess.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/API/SBProcess.h?rev=180868&r1=180867&r2=180868&view=diff
==============================================================================
--- lldb/trunk/include/lldb/API/SBProcess.h (original)
+++ lldb/trunk/include/lldb/API/SBProcess.h Wed May 1 14:11:56 2013
@@ -205,9 +205,6 @@ public:
Detach ();
lldb::SBError
- Detach (bool keep_stopped);
-
- lldb::SBError
Signal (int signal);
void
Modified: lldb/trunk/include/lldb/Target/Process.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Target/Process.h?rev=180868&r1=180867&r2=180868&view=diff
==============================================================================
--- lldb/trunk/include/lldb/Target/Process.h (original)
+++ lldb/trunk/include/lldb/Target/Process.h Wed May 1 14:11:56 2013
@@ -91,12 +91,6 @@ public:
void
SetStopOnSharedLibraryEvents (bool stop);
-
- bool
- GetDetachKeepsStopped () const;
-
- void
- SetDetachKeepsStopped (bool keep_stopped);
};
typedef std::shared_ptr<ProcessProperties> ProcessPropertiesSP;
@@ -1949,14 +1943,11 @@ public:
/// This function is not meant to be overridden by Process
/// subclasses.
///
- /// @param[in] keep_stopped
- /// If true, don't resume the process on detach.
- ///
/// @return
/// Returns an error object.
//------------------------------------------------------------------
Error
- Detach (bool keep_stopped);
+ Detach ();
//------------------------------------------------------------------
/// Kills the process and shuts down all threads that were spawned
@@ -2343,7 +2334,7 @@ public:
/// false otherwise.
//------------------------------------------------------------------
virtual Error
- DoDetach (bool keep_stopped)
+ DoDetach ()
{
Error error;
error.SetErrorStringWithFormat("error: %s does not support detaching from processes", GetShortPluginName());
Modified: lldb/trunk/source/API/SBProcess.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/API/SBProcess.cpp?rev=180868&r1=180867&r2=180868&view=diff
==============================================================================
--- lldb/trunk/source/API/SBProcess.cpp (original)
+++ lldb/trunk/source/API/SBProcess.cpp Wed May 1 14:11:56 2013
@@ -786,20 +786,12 @@ SBProcess::Kill ()
SBError
SBProcess::Detach ()
{
- // FIXME: This should come from a process default.
- bool keep_stopped = false;
- Detach (keep_stopped);
-}
-
-SBError
-SBProcess::Detach (bool keep_stopped)
-{
SBError sb_error;
ProcessSP process_sp(GetSP());
if (process_sp)
{
Mutex::Locker api_locker (process_sp->GetTarget().GetAPIMutex());
- sb_error.SetError (process_sp->Detach(keep_stopped));
+ sb_error.SetError (process_sp->Detach());
}
else
sb_error.SetErrorString ("SBProcess is invalid");
Modified: lldb/trunk/source/Commands/CommandObjectProcess.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Commands/CommandObjectProcess.cpp?rev=180868&r1=180867&r2=180868&view=diff
==============================================================================
--- lldb/trunk/source/Commands/CommandObjectProcess.cpp (original)
+++ lldb/trunk/source/Commands/CommandObjectProcess.cpp Wed May 1 14:11:56 2013
@@ -75,8 +75,7 @@ protected:
{
if (process->GetShouldDetach())
{
- bool keep_stopped = false;
- Error detach_error (process->Detach(keep_stopped));
+ Error detach_error (process->Detach());
if (detach_error.Success())
{
result.SetStatus (eReturnStatusSuccessFinishResult);
@@ -904,68 +903,6 @@ CommandObjectProcessContinue::CommandOpt
class CommandObjectProcessDetach : public CommandObjectParsed
{
public:
- class CommandOptions : public Options
- {
- public:
-
- CommandOptions (CommandInterpreter &interpreter) :
- Options (interpreter)
- {
- OptionParsingStarting ();
- }
-
- ~CommandOptions ()
- {
- }
-
- Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
- {
- Error error;
- const int short_option = m_getopt_table[option_idx].val;
-
- switch (short_option)
- {
- case 's':
- bool tmp_result;
- bool success;
- tmp_result = Args::StringToBoolean(option_arg, false, &success);
- if (!success)
- error.SetErrorStringWithFormat("invalid boolean option: \"%s\"", option_arg);
- else
- {
- if (tmp_result)
- m_keep_stopped = eLazyBoolYes;
- else
- m_keep_stopped = eLazyBoolNo;
- }
- break;
- default:
- error.SetErrorStringWithFormat("invalid short option character '%c'", short_option);
- break;
- }
- return error;
- }
-
- void
- OptionParsingStarting ()
- {
- m_keep_stopped = eLazyBoolCalculate;
- }
-
- const OptionDefinition*
- GetDefinitions ()
- {
- return g_option_table;
- }
-
- // Options table: Required for subclasses of Options.
-
- static OptionDefinition g_option_table[];
-
- // Instance variables to hold the values for command options.
- LazyBool m_keep_stopped;
- };
CommandObjectProcessDetach (CommandInterpreter &interpreter) :
CommandObjectParsed (interpreter,
@@ -974,8 +911,7 @@ public:
"process detach",
eFlagRequiresProcess |
eFlagTryTargetAPILock |
- eFlagProcessMustBeLaunched),
- m_options(interpreter)
+ eFlagProcessMustBeLaunched)
{
}
@@ -983,35 +919,13 @@ public:
{
}
- Options *
- GetOptions ()
- {
- return &m_options;
- }
-
-
protected:
bool
DoExecute (Args& command, CommandReturnObject &result)
{
Process *process = m_exe_ctx.GetProcessPtr();
result.AppendMessageWithFormat ("Detaching from process %" PRIu64 "\n", process->GetID());
- // FIXME: This will be a Command Option:
- bool keep_stopped;
- if (m_options.m_keep_stopped == eLazyBoolCalculate)
- {
- // Check the process default:
- if (process->GetDetachKeepsStopped())
- keep_stopped = true;
- else
- keep_stopped = false;
- }
- else if (m_options.m_keep_stopped == eLazyBoolYes)
- keep_stopped = true;
- else
- keep_stopped = false;
-
- Error error (process->Detach(keep_stopped));
+ Error error (process->Detach());
if (error.Success())
{
result.SetStatus (eReturnStatusSuccessFinishResult);
@@ -1024,15 +938,6 @@ protected:
}
return result.Succeeded();
}
-
- CommandOptions m_options;
-};
-
-OptionDefinition
-CommandObjectProcessDetach::CommandOptions::g_option_table[] =
-{
-{ LLDB_OPT_SET_1, false, "keep-stopped", 's', required_argument, NULL, 0, eArgTypeBoolean, "Whether or not the process should be kept stopped on detach (if possible)." },
-{ 0, false, NULL, 0, 0, NULL, 0, eArgTypeNone, NULL }
};
//-------------------------------------------------------------------------
Modified: lldb/trunk/source/Interpreter/CommandObject.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Interpreter/CommandObject.cpp?rev=180868&r1=180867&r2=180868&view=diff
==============================================================================
--- lldb/trunk/source/Interpreter/CommandObject.cpp (original)
+++ lldb/trunk/source/Interpreter/CommandObject.cpp Wed May 1 14:11:56 2013
@@ -295,6 +295,7 @@ CommandObject::CheckRequirements (Comman
else
{
StateType state = process->GetState();
+
switch (state)
{
case eStateInvalid:
Modified: lldb/trunk/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp?rev=180868&r1=180867&r2=180868&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp (original)
+++ lldb/trunk/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp Wed May 1 14:11:56 2013
@@ -507,12 +507,12 @@ ProcessKDP::DoHalt (bool &caused_stop)
}
Error
-ProcessKDP::DoDetach(bool keep_stopped)
+ProcessKDP::DoDetach()
{
Error error;
Log *log (ProcessKDPLog::GetLogIfAllCategoriesSet(KDP_LOG_PROCESS));
if (log)
- log->Printf ("ProcessKDP::DoDetach(keep_stopped = %i)", keep_stopped);
+ log->Printf ("ProcessKDP::DoDetach()");
if (m_comm.IsRunning())
{
@@ -525,8 +525,7 @@ ProcessKDP::DoDetach(bool keep_stopped)
m_thread_list.DiscardThreadPlans();
- // If we are going to keep the target stopped, then don't send the disconnect message.
- if (!keep_stopped && m_comm.IsConnected())
+ if (m_comm.IsConnected())
{
m_comm.SendRequestDisconnect();
@@ -555,8 +554,7 @@ Error
ProcessKDP::DoDestroy ()
{
// For KDP there really is no difference between destroy and detach
- bool keep_stopped = false;
- return DoDetach(keep_stopped);
+ return DoDetach();
}
//------------------------------------------------------------------
Modified: lldb/trunk/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.h?rev=180868&r1=180867&r2=180868&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.h (original)
+++ lldb/trunk/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.h Wed May 1 14:11:56 2013
@@ -135,7 +135,7 @@ public:
DoHalt (bool &caused_stop);
virtual lldb_private::Error
- DoDetach (bool keep_stopped);
+ DoDetach ();
virtual lldb_private::Error
DoSignal (int signal);
Modified: lldb/trunk/source/Plugins/Process/POSIX/ProcessPOSIX.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/POSIX/ProcessPOSIX.cpp?rev=180868&r1=180867&r2=180868&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Process/POSIX/ProcessPOSIX.cpp (original)
+++ lldb/trunk/source/Plugins/Process/POSIX/ProcessPOSIX.cpp Wed May 1 14:11:56 2013
@@ -283,16 +283,9 @@ ProcessPOSIX::DoHalt(bool &caused_stop)
}
Error
-ProcessPOSIX::DoDetach(bool keep_stopped)
+ProcessPOSIX::DoDetach()
{
Error error;
- if (keep_stopped)
- {
- // FIXME: If you want to implement keep_stopped on Linux,
- // this would be the place to do it.
- error.SetErrorString("Detaching with keep_stopped true is not currently supported on Linux.");
- return error;
- }
error = m_monitor->Detach();
if (error.Success())
Modified: lldb/trunk/source/Plugins/Process/POSIX/ProcessPOSIX.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/POSIX/ProcessPOSIX.h?rev=180868&r1=180867&r2=180868&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Process/POSIX/ProcessPOSIX.h (original)
+++ lldb/trunk/source/Plugins/Process/POSIX/ProcessPOSIX.h Wed May 1 14:11:56 2013
@@ -65,7 +65,7 @@ public:
DoHalt(bool &caused_stop);
virtual lldb_private::Error
- DoDetach(bool keep_stopped);
+ DoDetach();
virtual lldb_private::Error
DoSignal(int signal);
Modified: lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp?rev=180868&r1=180867&r2=180868&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp (original)
+++ lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp Wed May 1 14:11:56 2013
@@ -52,7 +52,6 @@ GDBRemoteCommunicationClient::GDBRemoteC
m_supports_alloc_dealloc_memory (eLazyBoolCalculate),
m_supports_memory_region_info (eLazyBoolCalculate),
m_supports_watchpoint_support_info (eLazyBoolCalculate),
- m_supports_detach_stay_stopped (eLazyBoolCalculate),
m_watchpoints_trigger_after_instruction(eLazyBoolCalculate),
m_attach_or_wait_reply(eLazyBoolCalculate),
m_prepare_for_reg_writing_reply (eLazyBoolCalculate),
@@ -1397,48 +1396,10 @@ GDBRemoteCommunicationClient::Deallocate
return false;
}
-Error
-GDBRemoteCommunicationClient::Detach (bool keep_stopped)
+bool
+GDBRemoteCommunicationClient::Detach ()
{
- Error error;
-
- if (keep_stopped)
- {
- if (m_supports_detach_stay_stopped == eLazyBoolCalculate)
- {
- char packet[64];
- const int packet_len = ::snprintf(packet, sizeof(packet), "qSupportsDetachAndStayStopped:");
- assert (packet_len < sizeof(packet));
- StringExtractorGDBRemote response;
- if (SendPacketAndWaitForResponse (packet, packet_len, response, false))
- {
- m_supports_detach_stay_stopped = eLazyBoolYes;
- }
- else
- {
- m_supports_detach_stay_stopped = eLazyBoolNo;
- }
- }
-
- if (m_supports_detach_stay_stopped == eLazyBoolNo)
- {
- error.SetErrorString("Stays stopped not supported by this target.");
- return error;
- }
- else
- {
- size_t num_sent = SendPacket ("D1", 2);
- if (num_sent == 0)
- error.SetErrorString ("Sending extended disconnect packet failed.");
- }
- }
- else
- {
- size_t num_sent = SendPacket ("D", 1);
- if (num_sent == 0)
- error.SetErrorString ("Sending disconnect packet failed.");
- }
- return error;
+ return SendPacket ("D", 1) > 0;
}
Error
Modified: lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h?rev=180868&r1=180867&r2=180868&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h (original)
+++ lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h Wed May 1 14:11:56 2013
@@ -199,8 +199,8 @@ public:
bool
DeallocateMemory (lldb::addr_t addr);
- lldb_private::Error
- Detach (bool keep_stopped);
+ bool
+ Detach ();
lldb_private::Error
GetMemoryRegionInfo (lldb::addr_t addr,
@@ -381,7 +381,6 @@ protected:
lldb_private::LazyBool m_supports_alloc_dealloc_memory;
lldb_private::LazyBool m_supports_memory_region_info;
lldb_private::LazyBool m_supports_watchpoint_support_info;
- lldb_private::LazyBool m_supports_detach_stay_stopped;
lldb_private::LazyBool m_watchpoints_trigger_after_instruction;
lldb_private::LazyBool m_attach_or_wait_reply;
lldb_private::LazyBool m_prepare_for_reg_writing_reply;
Modified: lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp?rev=180868&r1=180867&r2=180868&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp (original)
+++ lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp Wed May 1 14:11:56 2013
@@ -1703,29 +1703,25 @@ ProcessGDBRemote::DoHalt (bool &caused_s
}
Error
-ProcessGDBRemote::DoDetach(bool keep_stopped)
+ProcessGDBRemote::DoDetach()
{
Error error;
Log *log (ProcessGDBRemoteLog::GetLogIfAllCategoriesSet(GDBR_LOG_PROCESS));
if (log)
- log->Printf ("ProcessGDBRemote::DoDetach(keep_stopped: %i)", keep_stopped);
-
+ log->Printf ("ProcessGDBRemote::DoDetach()");
+
DisableAllBreakpointSites ();
m_thread_list.DiscardThreadPlans();
- error = m_gdb_comm.Detach (keep_stopped);
+ bool success = m_gdb_comm.Detach ();
if (log)
{
- if (error.Success())
+ if (success)
log->PutCString ("ProcessGDBRemote::DoDetach() detach packet sent successfully");
else
- log->Printf ("ProcessGDBRemote::DoDetach() detach packet send failed: %s", error.AsCString() ? error.AsCString() : "<unknown error>");
+ log->PutCString ("ProcessGDBRemote::DoDetach() detach packet send failed");
}
-
- if (!error.Success())
- return error;
-
// Sleep for one second to let the process get all detached...
StopAsyncThread ();
Modified: lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h?rev=180868&r1=180867&r2=180868&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h (original)
+++ lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h Wed May 1 14:11:56 2013
@@ -141,7 +141,7 @@ public:
DoHalt (bool &caused_stop);
virtual lldb_private::Error
- DoDetach (bool keep_stopped);
+ DoDetach ();
virtual bool
DetachRequiresHalt() { return true; }
Modified: lldb/trunk/source/Target/Process.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Target/Process.cpp?rev=180868&r1=180867&r2=180868&view=diff
==============================================================================
--- lldb/trunk/source/Target/Process.cpp (original)
+++ lldb/trunk/source/Target/Process.cpp Wed May 1 14:11:56 2013
@@ -101,7 +101,6 @@ g_properties[] =
{ "unwind-on-error-in-expressions", OptionValue::eTypeBoolean, true, true, NULL, NULL, "If true, errors in expression evaluation will unwind the stack back to the state before the call." },
{ "python-os-plugin-path", OptionValue::eTypeFileSpec, false, true, NULL, NULL, "A path to a python OS plug-in module file that contains a OperatingSystemPlugIn class." },
{ "stop-on-sharedlibrary-events" , OptionValue::eTypeBoolean, true, false, NULL, NULL, "If true, stop when a shared library is loaded or unloaded." },
- { "detach-keeps-stopped" , OptionValue::eTypeBoolean, true, false, NULL, NULL, "If true, detach will attempt to keep the process stopped." },
{ NULL , OptionValue::eTypeInvalid, false, 0, NULL, NULL, NULL }
};
@@ -111,8 +110,7 @@ enum {
ePropertyIgnoreBreakpointsInExpressions,
ePropertyUnwindOnErrorInExpressions,
ePropertyPythonOSPluginPath,
- ePropertyStopOnSharedLibraryEvents,
- ePropertyDetachKeepsStopped
+ ePropertyStopOnSharedLibraryEvents
};
ProcessProperties::ProcessProperties (bool is_global) :
@@ -215,20 +213,6 @@ ProcessProperties::SetStopOnSharedLibrar
m_collection_sp->SetPropertyAtIndexAsBoolean(NULL, idx, stop);
}
-bool
-ProcessProperties::GetDetachKeepsStopped () const
-{
- const uint32_t idx = ePropertyDetachKeepsStopped;
- return m_collection_sp->GetPropertyAtIndexAsBoolean(NULL, idx, g_properties[idx].default_uint_value != 0);
-}
-
-void
-ProcessProperties::SetDetachKeepsStopped (bool stop)
-{
- const uint32_t idx = ePropertyDetachKeepsStopped;
- m_collection_sp->SetPropertyAtIndexAsBoolean(NULL, idx, stop);
-}
-
void
ProcessInstanceInfo::Dump (Stream &s, Platform *platform) const
{
@@ -1112,11 +1096,7 @@ Process::Finalize()
case eStateCrashed:
case eStateSuspended:
if (GetShouldDetach())
- {
- // FIXME: This will have to be a process setting:
- bool keep_stopped = false;
- Detach(keep_stopped);
- }
+ Detach();
else
Destroy();
break;
@@ -3451,7 +3431,7 @@ Process::HaltForDestroyOrDetach(lldb::Ev
}
Error
-Process::Detach (bool keep_stopped)
+Process::Detach ()
{
EventSP exit_event_sp;
Error error;
@@ -3478,16 +3458,12 @@ Process::Detach (bool keep_stopped)
}
}
- error = DoDetach(keep_stopped);
+ error = DoDetach();
if (error.Success())
{
DidDetach();
StopPrivateStateThread();
}
- else
- {
- return error;
- }
}
m_destroy_in_process = false;
More information about the lldb-commits
mailing list