[Lldb-commits] [lldb] r292598 - Fix more unused variable warnings when asserts are disabled.

2017-01-20 Thread Hafiz Abid Qadeer via lldb-commits
Author: abidh
Date: Fri Jan 20 04:24:03 2017
New Revision: 292598

URL: http://llvm.org/viewvc/llvm-project?rev=292598&view=rev
Log:
Fix more unused variable warnings when asserts are disabled.


Modified:

lldb/trunk/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp
lldb/trunk/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
lldb/trunk/source/Plugins/Process/Linux/NativeProcessLinux.cpp
lldb/trunk/source/Symbol/LineTable.cpp

Modified: 
lldb/trunk/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp?rev=292598&r1=292597&r2=292598&view=diff
==
--- 
lldb/trunk/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp
 (original)
+++ 
lldb/trunk/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp
 Fri Jan 20 04:24:03 2017
@@ -895,6 +895,7 @@ UtilityFunction *AppleObjCRuntimeV2::Cre
   }
 
   assert(len < (int)sizeof(check_function_code));
+  UNUSED_IF_ASSERT_DISABLED(len);
 
   Error error;
   return GetTargetRef().GetUtilityFunctionForLanguage(

Modified: lldb/trunk/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp?rev=292598&r1=292597&r2=292598&view=diff
==
--- lldb/trunk/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp (original)
+++ lldb/trunk/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp Fri Jan 20 
04:24:03 2017
@@ -632,6 +632,7 @@ size_t ObjectFileELF::GetModuleSpecifica
   // SetArchitecture should have set the vendor to unknown
   vendor = spec.GetArchitecture().GetTriple().getVendor();
   assert(vendor == llvm::Triple::UnknownVendor);
+  UNUSED_IF_ASSERT_DISABLED(vendor);
 
   //
   // Validate it is ok to remove GetOsFromOSABI
@@ -1524,6 +1525,7 @@ size_t ObjectFileELF::GetSectionHeaderIn
 GetOsFromOSABI(header.e_ident[EI_OSABI], ostype);
 spec_ostype = arch_spec.GetTriple().getOS();
 assert(spec_ostype == ostype);
+UNUSED_IF_ASSERT_DISABLED(spec_ostype);
   }
 
   if (arch_spec.GetMachine() == llvm::Triple::mips ||

Modified: lldb/trunk/source/Plugins/Process/Linux/NativeProcessLinux.cpp
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/Linux/NativeProcessLinux.cpp?rev=292598&r1=292597&r2=292598&view=diff
==
--- lldb/trunk/source/Plugins/Process/Linux/NativeProcessLinux.cpp (original)
+++ lldb/trunk/source/Plugins/Process/Linux/NativeProcessLinux.cpp Fri Jan 20 
04:24:03 2017
@@ -1532,6 +1532,7 @@ Error NativeProcessLinux::GetMemoryRegio
 assert((proc_entry_info.GetRange().GetRangeBase() >= prev_base_address) &&
"descending /proc/pid/maps entries detected, unexpected");
 prev_base_address = proc_entry_info.GetRange().GetRangeBase();
+UNUSED_IF_ASSERT_DISABLED(prev_base_address);
 
 // If the target address comes before this entry, indicate distance to next
 // region.

Modified: lldb/trunk/source/Symbol/LineTable.cpp
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Symbol/LineTable.cpp?rev=292598&r1=292597&r2=292598&view=diff
==
--- lldb/trunk/source/Symbol/LineTable.cpp (original)
+++ lldb/trunk/source/Symbol/LineTable.cpp Fri Jan 20 04:24:03 2017
@@ -501,6 +501,7 @@ LineTable *LineTable::LinkLineTable(cons
 
 if (terminate_previous_entry && !sequence.m_entries.empty()) {
   assert(prev_file_addr != LLDB_INVALID_ADDRESS);
+  UNUSED_IF_ASSERT_DISABLED(prev_file_addr);
   sequence.m_entries.push_back(sequence.m_entries.back());
   if (prev_end_entry_linked_file_addr == LLDB_INVALID_ADDRESS)
 prev_end_entry_linked_file_addr =


___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [PATCH] D28944: Provide option to set pc of the file loaded in memory.

2017-01-20 Thread Hafiz Abid Qadeer via Phabricator via lldb-commits
abidh created this revision.

This commit adds an option to set PC to the entry point of the file loaded 
using "target module load" command. In https://reviews.llvm.org/D28804, Greg 
asked me to separate this part under a different option.


https://reviews.llvm.org/D28944

Files:
  include/lldb/Core/Module.h
  include/lldb/Symbol/ObjectFile.h
  source/Commands/CommandObjectTarget.cpp
  source/Core/Module.cpp
  source/Symbol/ObjectFile.cpp

Index: source/Symbol/ObjectFile.cpp
===
--- source/Symbol/ObjectFile.cpp
+++ source/Symbol/ObjectFile.cpp
@@ -652,7 +652,7 @@
   return ConstString(ss.GetString());
 }
 
-Error ObjectFile::LoadInMemory(Target &target) {
+Error ObjectFile::LoadInMemory(Target &target, bool set_pc) {
   Error error;
   ProcessSP process = target.CalculateProcess();
   if (!process)
@@ -677,5 +677,13 @@
 return error;
 }
   }
+  if (set_pc) {
+ThreadList &thread_list = process->GetThreadList();
+ThreadSP curr_thread(thread_list.GetSelectedThread());
+RegisterContextSP reg_context(curr_thread->GetRegisterContext());
+Address file_entry = GetEntryPointAddress();
+if (file_entry.IsValid())
+  reg_context->SetPC(file_entry.GetLoadAddress(&target));
+  }
   return error;
 }
Index: source/Core/Module.cpp
===
--- source/Core/Module.cpp
+++ source/Core/Module.cpp
@@ -1665,6 +1665,6 @@
   return false;
 }
 
-Error Module::LoadInMemory(Target &target) {
-  return m_objfile_sp->LoadInMemory(target);
+Error Module::LoadInMemory(Target &target, bool set_pc) {
+  return m_objfile_sp->LoadInMemory(target, set_pc);
 }
Index: source/Commands/CommandObjectTarget.cpp
===
--- source/Commands/CommandObjectTarget.cpp
+++ source/Commands/CommandObjectTarget.cpp
@@ -2568,16 +2568,20 @@
 m_file_option(LLDB_OPT_SET_1, false, "file", 'f', 0, eArgTypeName,
   "Fullpath or basename for module to load.", ""),
 m_load_option(LLDB_OPT_SET_1, false, "load", 'l',
-  "Write file contents to the memory.",
-  false, true),
+  "Write file contents to the memory.", false, true),
+m_pc_option(LLDB_OPT_SET_1, false, "--set-pc-to-entry", 'p',
+"Set PC to the entry point."
+" Only applicable with '--load' option.",
+false, true),
 m_slide_option(LLDB_OPT_SET_1, false, "slide", 's', 0, eArgTypeOffset,
"Set the load address for all sections to be the "
"virtual address in the file plus the offset.",
0) {
 m_option_group.Append(&m_uuid_option_group, LLDB_OPT_SET_ALL,
   LLDB_OPT_SET_1);
 m_option_group.Append(&m_file_option, LLDB_OPT_SET_ALL, LLDB_OPT_SET_1);
 m_option_group.Append(&m_load_option, LLDB_OPT_SET_ALL, LLDB_OPT_SET_1);
+m_option_group.Append(&m_pc_option, LLDB_OPT_SET_ALL, LLDB_OPT_SET_1);
 m_option_group.Append(&m_slide_option, LLDB_OPT_SET_ALL, LLDB_OPT_SET_1);
 m_option_group.Finalize();
   }
@@ -2590,6 +2594,7 @@
   bool DoExecute(Args &args, CommandReturnObject &result) override {
 Target *target = m_interpreter.GetDebugger().GetSelectedTarget().get();
 const bool load = m_load_option.GetOptionValue().GetCurrentValue();
+const bool set_pc = m_pc_option.GetOptionValue().GetCurrentValue();
 if (target == nullptr) {
   result.AppendError("invalid target, create a debug target using the "
  "'target create' command");
@@ -2742,7 +2747,7 @@
 process->Flush();
 }
 if (load) {
-  Error error = module->LoadInMemory(*target);
+  Error error = module->LoadInMemory(*target, set_pc);
   if (error.Fail()) {
 result.AppendError(error.AsCString());
 return false;
@@ -2811,6 +2816,7 @@
   OptionGroupUUID m_uuid_option_group;
   OptionGroupString m_file_option;
   OptionGroupBoolean m_load_option;
+  OptionGroupBoolean m_pc_option;
   OptionGroupUInt64 m_slide_option;
 };
 
Index: include/lldb/Symbol/ObjectFile.h
===
--- include/lldb/Symbol/ObjectFile.h
+++ include/lldb/Symbol/ObjectFile.h
@@ -786,7 +786,7 @@
   ///
   /// @return
   //--
-  virtual Error LoadInMemory(Target &target);
+  virtual Error LoadInMemory(Target &target, bool set_pc);
 
 protected:
   //--
Index: include/lldb/Core/Module.h
===
--- include/lldb/Core/Module.h
+++ include/lldb/Core/Module.h
@@ -974,7 +974,7 @@
   ///
 

[Lldb-commits] [PATCH] D28945: Add completed_plan_stack to LLDB ThreadStateCheckpoint

2017-01-20 Thread Boris Ulasevich via Phabricator via lldb-commits
boris.ulasevich created this revision.
boris.ulasevich added a project: LLDB.

Here is a fix for Ubuntu tests fails after the recent change 
https://reviews.llvm.org/D26497 (https://reviews.llvm.org/D26497). The cause of 
those fails is in internal call to mmap fuction which destroys 
completed_plan_stack content which in its turn leads to incorrect stop reason 
discovering.

The solution is to save/restore completed_plan_stack along with existing 
ThreadStateCheckpoint functionality.


Repository:
  rL LLVM

https://reviews.llvm.org/D28945

Files:
  lldb/include/lldb/Target/Thread.h
  lldb/source/Target/Thread.cpp


Index: lldb/source/Target/Thread.cpp
===
--- lldb/source/Target/Thread.cpp
+++ lldb/source/Target/Thread.cpp
@@ -540,6 +540,7 @@
   if (process_sp)
 saved_state.orig_stop_id = process_sp->GetStopID();
   saved_state.current_inlined_depth = GetCurrentInlinedDepth();
+  saved_state.m_completed_plan_stack = m_completed_plan_stack;
 
   return true;
 }
@@ -573,6 +574,7 @@
   SetStopInfo(saved_state.stop_info_sp);
   GetStackFrameList()->SetCurrentInlinedDepth(
   saved_state.current_inlined_depth);
+  m_completed_plan_stack = saved_state.m_completed_plan_stack;
   return true;
 }
 
Index: lldb/include/lldb/Target/Thread.h
===
--- lldb/include/lldb/Target/Thread.h
+++ lldb/include/lldb/Target/Thread.h
@@ -126,6 +126,7 @@
// bit of data.
 lldb::StopInfoSP stop_info_sp; // You have to restore the stop info or you
// might continue with the wrong signals.
+std::vector m_completed_plan_stack;
 lldb::RegisterCheckpointSP
 register_backup_sp; // You need to restore the registers, of course...
 uint32_t current_inlined_depth;


Index: lldb/source/Target/Thread.cpp
===
--- lldb/source/Target/Thread.cpp
+++ lldb/source/Target/Thread.cpp
@@ -540,6 +540,7 @@
   if (process_sp)
 saved_state.orig_stop_id = process_sp->GetStopID();
   saved_state.current_inlined_depth = GetCurrentInlinedDepth();
+  saved_state.m_completed_plan_stack = m_completed_plan_stack;
 
   return true;
 }
@@ -573,6 +574,7 @@
   SetStopInfo(saved_state.stop_info_sp);
   GetStackFrameList()->SetCurrentInlinedDepth(
   saved_state.current_inlined_depth);
+  m_completed_plan_stack = saved_state.m_completed_plan_stack;
   return true;
 }
 
Index: lldb/include/lldb/Target/Thread.h
===
--- lldb/include/lldb/Target/Thread.h
+++ lldb/include/lldb/Target/Thread.h
@@ -126,6 +126,7 @@
// bit of data.
 lldb::StopInfoSP stop_info_sp; // You have to restore the stop info or you
// might continue with the wrong signals.
+std::vector m_completed_plan_stack;
 lldb::RegisterCheckpointSP
 register_backup_sp; // You need to restore the registers, of course...
 uint32_t current_inlined_depth;
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [PATCH] D28945: Add completed_plan_stack to LLDB ThreadStateCheckpoint

2017-01-20 Thread Pavel Labath via Phabricator via lldb-commits
labath added a reviewer: jingham.
labath added a comment.

Jim should probably review this change.

That said, I don't see any failures on linux currently. Can you elaborate on 
which tests are failing and why? It sounds like there is an opportunity here to 
write a more robust test...


Repository:
  rL LLVM

https://reviews.llvm.org/D28945



___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [lldb] r292611 - Prevent client from querying each thread's PC at each stop.

2017-01-20 Thread Pavel Labath via lldb-commits
Author: labath
Date: Fri Jan 20 08:17:16 2017
New Revision: 292611

URL: http://llvm.org/viewvc/llvm-project?rev=292611&view=rev
Log:
Prevent client from querying each thread's PC at each stop.

Summary:
The server was no longer sending the thread PCs the way the client
expected them.
I changed the server to send them back as a threadstop info field,
similar to the Apple version of the server.
I also changed the client to look for them there, before querying the
server.
I added a test to ensure the server doesn't stop sending them.

Reviewed By: labath

Differential Revision: https://reviews.llvm.org/D28880
Author: Jason Majors

Modified:

lldb/trunk/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteThreadsInStopReply.py

lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h

Modified: 
lldb/trunk/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteThreadsInStopReply.py
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteThreadsInStopReply.py?rev=292611&r1=292610&r2=292611&view=diff
==
--- 
lldb/trunk/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteThreadsInStopReply.py
 (original)
+++ 
lldb/trunk/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteThreadsInStopReply.py
 Fri Jan 20 08:17:16 2017
@@ -1,11 +1,13 @@
 from __future__ import print_function
 
+import json
+import re
+
 import gdbremote_testcase
 from lldbsuite.test.decorators import *
 from lldbsuite.test.lldbtest import *
 from lldbsuite.test import lldbutil
 
-
 class TestGdbRemoteThreadsInStopReply(
 gdbremote_testcase.GdbRemoteTestCaseBase):
 
@@ -16,7 +18,8 @@ class TestGdbRemoteThreadsInStopReply(
 "send packet: $OK#00",
 ]
 
-def gather_stop_reply_threads(self, post_startup_log_lines, thread_count):
+def gather_stop_reply_fields(self, post_startup_log_lines, thread_count,
+field_names):
 # Set up the inferior args.
 inferior_args = []
 for i in range(thread_count - 1):
@@ -25,6 +28,9 @@ class TestGdbRemoteThreadsInStopReply(
 procs = self.prep_debug_monitor_and_inferior(
 inferior_args=inferior_args)
 
+self.add_register_info_collection_packets()
+self.add_process_info_collection_packets()
+
 # Assumes test_sequence has anything added needed to setup the initial 
state.
 # (Like optionally enabling QThreadsInStopReply.)
 if post_startup_log_lines:
@@ -34,6 +40,7 @@ class TestGdbRemoteThreadsInStopReply(
 ], True)
 context = self.expect_gdbremote_sequence()
 self.assertIsNotNone(context)
+hw_info = self.parse_hw_info(context)
 
 # Give threads time to start up, then break.
 time.sleep(1)
@@ -77,14 +84,89 @@ class TestGdbRemoteThreadsInStopReply(
 kv_dict = self.parse_key_val_dict(key_vals_text)
 self.assertIsNotNone(kv_dict)
 
+result = dict();
+result["pc_register"] = hw_info["pc_register"]
+result["little_endian"] = hw_info["little_endian"]
+for key_field in field_names:
+result[key_field] = kv_dict.get(key_field)
+
+return result
+
+def gather_stop_reply_threads(self, post_startup_log_lines, thread_count):
 # Pull out threads from stop response.
-stop_reply_threads_text = kv_dict.get("threads")
+stop_reply_threads_text = self.gather_stop_reply_fields(
+post_startup_log_lines, thread_count, ["threads"])["threads"]
 if stop_reply_threads_text:
 return [int(thread_id, 16)
 for thread_id in stop_reply_threads_text.split(",")]
 else:
 return []
 
+def gather_stop_reply_pcs(self, post_startup_log_lines, thread_count):
+results = self.gather_stop_reply_fields( post_startup_log_lines,
+thread_count, ["threads", "thread-pcs"])
+if not results:
+return []
+
+threads_text = results["threads"]
+pcs_text = results["thread-pcs"]
+thread_ids = threads_text.split(",")
+pcs = pcs_text.split(",")
+self.assertTrue(len(thread_ids) == len(pcs))
+
+thread_pcs = dict()
+for i in range(0, len(pcs)):
+thread_pcs[int(thread_ids[i], 16)] = pcs[i]
+
+result = dict()
+result["thread_pcs"] = thread_pcs
+result["pc_register"] = results["pc_register"]
+result["little_endian"] = results["little_endian"]
+return result
+
+def switch_endian(self, egg):
+return "".join(reversed(re.findall("..", egg)))
+
+def parse_hw_info(self, context):
+self.assertIsNotNone(context)
+process_info = self.parse_pro

[Lldb-commits] [PATCH] D28808: Fix a bug where lldb does not respect the packet size.

2017-01-20 Thread Hafiz Abid Qadeer via Phabricator via lldb-commits
abidh marked an inline comment as done.
abidh added a comment.

Greg, any further comment on this patch.


https://reviews.llvm.org/D28808



___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [PATCH] D28944: Provide option to set pc of the file loaded in memory.

2017-01-20 Thread Greg Clayton via Phabricator via lldb-commits
clayborg requested changes to this revision.
clayborg added a comment.
This revision now requires changes to proceed.

Just set an error when "set_pc" is true and you get no entry point back from 
thee object file and this is good to go.




Comment at: source/Symbol/ObjectFile.cpp:685-686
+Address file_entry = GetEntryPointAddress();
+if (file_entry.IsValid())
+  reg_context->SetPC(file_entry.GetLoadAddress(&target));
+  }

Set an error if there is no valid entry point address. This would happen if 
someone tries to run load on a shared library.


https://reviews.llvm.org/D28944



___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [PATCH] D28808: Fix a bug where lldb does not respect the packet size.

2017-01-20 Thread Greg Clayton via Phabricator via lldb-commits
clayborg requested changes to this revision.
clayborg added a comment.
This revision now requires changes to proceed.

See easy inline fix and this will be good to go




Comment at: source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp:4004
+// hope that data being written is small enough to fit.
+Log *log(ProcessGDBRemoteLog::GetLogIfAllCategoriesSet(
+GDBR_LOG_COMM | GDBR_LOG_MEMORY));

LogIfAny, not LogIfAll. Then either bit will work to show this.


https://reviews.llvm.org/D28808



___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [PATCH] D28945: Add completed_plan_stack to LLDB ThreadStateCheckpoint

2017-01-20 Thread Boris Ulasevich via Phabricator via lldb-commits
boris.ulasevich added a comment.

> Jim should probably review this change.

Yes, thank you. We are in contact with Jim. And I see now I had put Jim to 
Subscribers list instead of Revievers list :)

> That said, I don't see any failures on linux currently. Can you elaborate on 
> which tests are failing and why?

Let me explain it. A month ago I got ready-to-land resolution for 
https://reviews.llvm.org/D26497 and committed it. Very soon I got tests fail 
notification from build robot: several tests (including my new test) failed on 
Ubuntu. The decision was to revert the change temporary, and study the issue 
without a rush. And now I am back with the fix for this issue. I am going to 
commit https://reviews.llvm.org/D26497 back after this fix.


Repository:
  rL LLVM

https://reviews.llvm.org/D28945



___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [PATCH] D28945: Add completed_plan_stack to LLDB ThreadStateCheckpoint

2017-01-20 Thread Jim Ingham via Phabricator via lldb-commits
jingham requested changes to this revision.
jingham added a comment.
This revision now requires changes to proceed.

The restoration of the stop reason works for the most part.  For instance, when 
we call a user expression the stop reason is correctly restored.  This was done 
by saving and restoring the stop info.  There's one other little two-step you 
have to do to produce the "cooked" stop reason.  For instance, if you stop 
because of a breakpoint hit that completed a "step-out" plan, you have to check 
the completed plan stack to figure out what the user visible stop reason was.  
But before Boris' change the state of the completed plan stack wasn't important 
once this was done.  Boris' change started using the completed plan stack for 
more than just the initial determination of the cooked stop reason, so you do 
need to preserve it as well.

I don't think that letting the completed plans live a little longer should pose 
any problems.  The plans should do whatever cleanup they are going to do when 
they get popped, and should not rely on the destructors to do this work.  But 
it would be worth a quick audit to make sure I didn't get sloppy about that 
before we make this change, and we should document that requirement in the 
ThreadPlan dissertation at the beginning of ThreadPlan.h.

Can you do that, and then we should be fine to go in?


Repository:
  rL LLVM

https://reviews.llvm.org/D28945



___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [PATCH] D28945: Add completed_plan_stack to LLDB ThreadStateCheckpoint

2017-01-20 Thread Jim Ingham via Phabricator via lldb-commits
jingham added a comment.

BTW, this shows one important difference between OS X and Linux that pops up 
from time to time.  On OS X, we can allocate memory in the target process 
without having to call functions in the target.  We don't do that by hand in 
lldb (that wouldn't work for remote debugging) rather we have a packet we send 
to debugserver, and it does the allocation.  But the Linux lldb-server doesn't 
have this ability so on Linux, lldb ends up having to make and run a 
ThreadPlanCallFunction from awkward places in processing stops.  This works for 
the most part, but it sometimes requires tweaks like this.

This functionality gets tested pretty rigorously just by using lldb on Linux, 
since this gets done as a side effect of many operations.  So it is tested 
indirectly by the test suite.  I'm not sure how you would test this directly, 
however.


Repository:
  rL LLVM

https://reviews.llvm.org/D28945



___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [PATCH] D28945: Add completed_plan_stack to LLDB ThreadStateCheckpoint

2017-01-20 Thread Pavel Labath via Phabricator via lldb-commits
labath added a comment.

Thank you both for explaining the situation. The "test failure on ubuntu" part 
threw me off -- I did not realize you were talking about hypothetical failure 
should a different change go in. I was worried we have some very 
environment-dependent tests.

Looks good from my side then.


Repository:
  rL LLVM

https://reviews.llvm.org/D28945



___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [lldb] r292696 - Add a catch-all line for detecting dyld in the inferior process

2017-01-20 Thread Jason Molenda via lldb-commits
Author: jmolenda
Date: Fri Jan 20 19:17:36 2017
New Revision: 292696

URL: http://llvm.org/viewvc/llvm-project?rev=292696&view=rev
Log:
Add a catch-all line for detecting dyld in the inferior process
shlibs so we don't miss dyld.
 

Modified:
lldb/trunk/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderDarwin.cpp
lldb/trunk/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.cpp

Modified: 
lldb/trunk/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderDarwin.cpp
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderDarwin.cpp?rev=292696&r1=292695&r2=292696&view=diff
==
--- lldb/trunk/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderDarwin.cpp 
(original)
+++ lldb/trunk/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderDarwin.cpp 
Fri Jan 20 19:17:36 2017
@@ -542,6 +542,10 @@ void DynamicLoaderDarwin::UpdateSpecialB
   dyld_idx = i;
 }
   }
+  else {
+// catch-all for any other environment -- trust that dyld is actually 
dyld
+dyld_idx = i;
+  }
 } else if (image_infos[i].header.filetype == llvm::MachO::MH_EXECUTE) {
   exe_idx = i;
 }

Modified: 
lldb/trunk/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.cpp
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.cpp?rev=292696&r1=292695&r2=292696&view=diff
==
--- lldb/trunk/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.cpp 
(original)
+++ lldb/trunk/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.cpp 
Fri Jan 20 19:17:36 2017
@@ -139,6 +139,7 @@ bool DynamicLoaderMacOS::DidSetNotificat
 void DynamicLoaderMacOS::ClearNotificationBreakpoint() {
   if (LLDB_BREAK_ID_IS_VALID(m_break_id)) {
 m_process->GetTarget().RemoveBreakpointByID(m_break_id);
+m_break_id = LLDB_INVALID_BREAK_ID;
   }
 }
 


___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits