[Lldb-commits] [PATCH] D29078: This patch implements a command to access and manipulate the Intel(R) MPX Boundary Tables.

2017-01-25 Thread Valentina Giusti via Phabricator via lldb-commits
valentinagiusti marked 2 inline comments as done.
valentinagiusti added a comment.

Hi Greg, thanks a lot for your review. I have a question about the API that you 
proposed, please have a look at the inline comments.




Comment at: tools/intel-mpx/IntelMPXTablePlugin.cpp:143-150
+  if (arch == llvm::Triple::ArchType::x86_64) {
+bd_entry =
+toU64(bd_entry_v[7], bd_entry_v[6], bd_entry_v[5], bd_entry_v[4],
+  bd_entry_v[3], bd_entry_v[2], bd_entry_v[1], bd_entry_v[0]);
+  } else {
+bd_entry =
+toU32(bd_entry_v[3], bd_entry_v[2], bd_entry_v[1], bd_entry_v[0]);

clayborg wrote:
> No need to do manual byte order stuff here, we can use SBData and you don't 
> need the "if (arch == ...)" since SBData knows the address byte size:
> 
> ```
> SBError error;
> SBData data;
> data.SetData(error, bd_entry_v.data(), bd_entry_v.size(), 
> target.GetByteOrder(), target.GetAddressByteSize());
> lldb::addr_t bd_entry = data.GetAddress(error, 0);
> ```
Hi Greg, thanks for the tip, but the code that you proposed doesn't work for 
i386 for me. GetAddress() fails with the error "unable to read data". 
To me it doesn't look like this API is able to handle different arch byte sizes.
In fact, if I leave the "if (arch ==) check and I use GetUnsignedInt32() 
instead of GetAddress() it works. Is this a bug of GetAddress()?


https://reviews.llvm.org/D29078



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


[Lldb-commits] [lldb] r293045 - Replace chdir() usage with the llvm equivalent.

2017-01-25 Thread Pavel Labath via lldb-commits
Author: labath
Date: Wed Jan 25 05:10:52 2017
New Revision: 293045

URL: http://llvm.org/viewvc/llvm-project?rev=293045&view=rev
Log:
Replace chdir() usage with the llvm equivalent.

This removes a hack in PosixApi.h, which tends to produce strange
compile errors when it's included in the wrong order.

Modified:
lldb/trunk/include/lldb/Host/windows/PosixApi.h
lldb/trunk/source/Host/windows/Windows.cpp

lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp
lldb/trunk/source/Target/Platform.cpp

Modified: lldb/trunk/include/lldb/Host/windows/PosixApi.h
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Host/windows/PosixApi.h?rev=293045&r1=293044&r2=293045&view=diff
==
--- lldb/trunk/include/lldb/Host/windows/PosixApi.h (original)
+++ lldb/trunk/include/lldb/Host/windows/PosixApi.h Wed Jan 25 05:10:52 2017
@@ -82,7 +82,6 @@ char *strcasestr(const char *s, const ch
 char *realpath(const char *name, char *resolved);
 
 int usleep(uint32_t useconds);
-int chdir(const char *path);
 char *basename(char *path);
 char *dirname(char *path);
 

Modified: lldb/trunk/source/Host/windows/Windows.cpp
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/windows/Windows.cpp?rev=293045&r1=293044&r2=293045&view=diff
==
--- lldb/trunk/source/Host/windows/Windows.cpp (original)
+++ lldb/trunk/source/Host/windows/Windows.cpp Wed Jan 25 05:10:52 2017
@@ -23,12 +23,6 @@
 #include 
 #include 
 
-// These prototypes are defined in , but it also defines chdir(),
-// giving multiply defined errors
-extern "C" {
-int _chdir(const char *path);
-}
-
 namespace {
 bool utf8ToWide(const char *utf8, wchar_t *buf, size_t bufSize) {
   const llvm::UTF8 *sourceStart = reinterpret_cast(utf8);
@@ -189,9 +183,6 @@ char *basename(char *path) {
   return &l1[1];
 }
 
-// use _chdir() instead of SetCurrentDirectory() because it updates errno
-int chdir(const char *path) { return _chdir(path); }
-
 char *dirname(char *path) {
   char *l1 = strrchr(path, '\\');
   char *l2 = strrchr(path, '/');

Modified: 
lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp?rev=293045&r1=293044&r2=293045&view=diff
==
--- 
lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp
 (original)
+++ 
lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp
 Wed Jan 25 05:10:52 2017
@@ -353,8 +353,6 @@ GDBRemoteCommunicationServerPlatform::Ha
 GDBRemoteCommunication::PacketResult
 GDBRemoteCommunicationServerPlatform::Handle_qGetWorkingDir(
 StringExtractorGDBRemote &packet) {
-  // If this packet is sent to a platform, then change the current working
-  // directory
 
   llvm::SmallString<64> cwd;
   if (std::error_code ec = llvm::sys::fs::current_path(cwd))
@@ -372,10 +370,8 @@ GDBRemoteCommunicationServerPlatform::Ha
   std::string path;
   packet.GetHexByteString(path);
 
-  // If this packet is sent to a platform, then change the current working
-  // directory
-  if (::chdir(path.c_str()) != 0)
-return SendErrorResponse(errno);
+  if (std::error_code ec = llvm::sys::fs::set_current_path(path))
+return SendErrorResponse(ec.value());
   return SendOKResponse();
 }
 

Modified: lldb/trunk/source/Target/Platform.cpp
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Target/Platform.cpp?rev=293045&r1=293044&r2=293045&view=diff
==
--- lldb/trunk/source/Target/Platform.cpp (original)
+++ lldb/trunk/source/Target/Platform.cpp Wed Jan 25 05:10:52 2017
@@ -748,14 +748,12 @@ Error Platform::Install(const FileSpec &
 bool Platform::SetWorkingDirectory(const FileSpec &file_spec) {
   if (IsHost()) {
 Log *log = GetLogIfAnyCategoriesSet(LIBLLDB_LOG_PLATFORM);
-if (log)
-  log->Printf("Platform::SetWorkingDirectory('%s')",
-  file_spec.GetCString());
-if (file_spec) {
-  if (::chdir(file_spec.GetCString()) == 0)
-return true;
+LLDB_LOG(log, "{0}", file_spec);
+if (std::error_code ec = 
llvm::sys::fs::set_current_path(file_spec.GetPath())) {
+  LLDB_LOG(log, "error: {0}", ec.message());
+  return false;
 }
-return false;
+return true;
   } else {
 m_working_dir.Clear();
 return SetRemoteWorkingDirectory(file_spec);


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


[Lldb-commits] [lldb] r293047 - include Host/Time.h in Cocoa.cpp

2017-01-25 Thread Pavel Labath via lldb-commits
Author: labath
Date: Wed Jan 25 05:19:49 2017
New Revision: 293047

URL: http://llvm.org/viewvc/llvm-project?rev=293047&view=rev
Log:
include Host/Time.h in Cocoa.cpp

Time.h contains the necessary magic to enable timegm on all android
targets.

Modified:
lldb/trunk/source/Plugins/Language/ObjC/Cocoa.cpp

Modified: lldb/trunk/source/Plugins/Language/ObjC/Cocoa.cpp
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Language/ObjC/Cocoa.cpp?rev=293047&r1=293046&r2=293047&view=diff
==
--- lldb/trunk/source/Plugins/Language/ObjC/Cocoa.cpp (original)
+++ lldb/trunk/source/Plugins/Language/ObjC/Cocoa.cpp Wed Jan 25 05:19:49 2017
@@ -23,6 +23,7 @@
 #include "lldb/DataFormatters/StringPrinter.h"
 #include "lldb/DataFormatters/TypeSummary.h"
 #include "lldb/Host/Endian.h"
+#include "lldb/Host/Time.h"
 #include "lldb/Symbol/ClangASTContext.h"
 #include "lldb/Target/Language.h"
 #include "lldb/Target/ObjCLanguageRuntime.h"


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


[Lldb-commits] [lldb] r293046 - NPL: Compartmentalize arm64 single step workaround better

2017-01-25 Thread Pavel Labath via lldb-commits
Author: labath
Date: Wed Jan 25 05:19:45 2017
New Revision: 293046

URL: http://llvm.org/viewvc/llvm-project?rev=293046&view=rev
Log:
NPL: Compartmentalize arm64 single step workaround better

The main motivation for me doing this is being able to build an arm
android lldb-server against api level 9 headers, but it seems like a
good cleanup nonetheless.

The entirety of the cpu_set_t dance now resides in SingleStepCheck.cpp,
which is only built on arm64.

Modified:
lldb/trunk/source/Plugins/Process/Linux/NativeThreadLinux.cpp
lldb/trunk/source/Plugins/Process/Linux/NativeThreadLinux.h
lldb/trunk/source/Plugins/Process/Linux/SingleStepCheck.cpp
lldb/trunk/source/Plugins/Process/Linux/SingleStepCheck.h

Modified: lldb/trunk/source/Plugins/Process/Linux/NativeThreadLinux.cpp
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/Linux/NativeThreadLinux.cpp?rev=293046&r1=293045&r2=293046&view=diff
==
--- lldb/trunk/source/Plugins/Process/Linux/NativeThreadLinux.cpp (original)
+++ lldb/trunk/source/Plugins/Process/Linux/NativeThreadLinux.cpp Wed Jan 25 
05:19:45 2017
@@ -220,63 +220,12 @@ Error NativeThreadLinux::Resume(uint32_t
reinterpret_cast(data));
 }
 
-void NativeThreadLinux::MaybePrepareSingleStepWorkaround() {
-  if (!SingleStepWorkaroundNeeded())
-return;
-
-  Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_THREAD));
-
-  if (sched_getaffinity(static_cast<::pid_t>(m_tid), sizeof m_original_cpu_set,
-&m_original_cpu_set) != 0) {
-// This should really not fail. But, just in case...
-if (log) {
-  Error error(errno, eErrorTypePOSIX);
-  log->Printf(
-  "NativeThreadLinux::%s Unable to get cpu affinity for thread %" 
PRIx64
-  ": %s",
-  __FUNCTION__, m_tid, error.AsCString());
-}
-return;
-  }
-
-  cpu_set_t set;
-  CPU_ZERO(&set);
-  CPU_SET(0, &set);
-  if (sched_setaffinity(static_cast<::pid_t>(m_tid), sizeof set, &set) != 0 &&
-  log) {
-// This may fail in very locked down systems, if the thread is not allowed
-// to run on
-// cpu 0. If that happens, only thing we can do is it log it and 
continue...
-Error error(errno, eErrorTypePOSIX);
-log->Printf(
-"NativeThreadLinux::%s Unable to set cpu affinity for thread %" PRIx64
-": %s",
-__FUNCTION__, m_tid, error.AsCString());
-  }
-}
-
-void NativeThreadLinux::MaybeCleanupSingleStepWorkaround() {
-  if (!SingleStepWorkaroundNeeded())
-return;
-
-  if (sched_setaffinity(static_cast<::pid_t>(m_tid), sizeof m_original_cpu_set,
-&m_original_cpu_set) != 0) {
-Error error(errno, eErrorTypePOSIX);
-Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_THREAD));
-log->Printf(
-"NativeThreadLinux::%s Unable to reset cpu affinity for thread %" 
PRIx64
-": %s",
-__FUNCTION__, m_tid, error.AsCString());
-  }
-}
-
 Error NativeThreadLinux::SingleStep(uint32_t signo) {
   const StateType new_state = StateType::eStateStepping;
   MaybeLogStateChange(new_state);
   m_state = new_state;
   m_stop_info.reason = StopReason::eStopReasonNone;
-
-  MaybePrepareSingleStepWorkaround();
+  m_step_workaround = SingleStepWorkaround::Get(m_tid);
 
   intptr_t data = 0;
   if (signo != LLDB_INVALID_SIGNAL_NUMBER)
@@ -338,7 +287,7 @@ bool NativeThreadLinux::IsStopped(int *s
 
 void NativeThreadLinux::SetStopped() {
   if (m_state == StateType::eStateStepping)
-MaybeCleanupSingleStepWorkaround();
+m_step_workaround.reset();
 
   const StateType new_state = StateType::eStateStopped;
   MaybeLogStateChange(new_state);

Modified: lldb/trunk/source/Plugins/Process/Linux/NativeThreadLinux.h
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/Linux/NativeThreadLinux.h?rev=293046&r1=293045&r2=293046&view=diff
==
--- lldb/trunk/source/Plugins/Process/Linux/NativeThreadLinux.h (original)
+++ lldb/trunk/source/Plugins/Process/Linux/NativeThreadLinux.h Wed Jan 25 
05:19:45 2017
@@ -10,11 +10,10 @@
 #ifndef liblldb_NativeThreadLinux_H_
 #define liblldb_NativeThreadLinux_H_
 
+#include "SingleStepCheck.h"
 #include "lldb/Host/common/NativeThreadProtocol.h"
 #include "lldb/lldb-private-forward.h"
 
-#include 
-
 #include 
 #include 
 #include 
@@ -94,10 +93,6 @@ private:
 
   void SetStopped();
 
-  inline void MaybePrepareSingleStepWorkaround();
-
-  inline void MaybeCleanupSingleStepWorkaround();
-
   // -
   // Member Variables
   // -
@@ -107,7 +102,7 @@ private:
   std::string m_stop_description;
   using WatchpointIndexMap = std::map;
   WatchpointIndexMap m_watchpoint_index_map;
-  cpu_set_t m_original_cpu_set; // For si

[Lldb-commits] [PATCH] D29078: This patch implements a command to access and manipulate the Intel(R) MPX Boundary Tables.

2017-01-25 Thread Valentina Giusti via Phabricator via lldb-commits
valentinagiusti marked 3 inline comments as done.
valentinagiusti added inline comments.



Comment at: tools/intel-mpx/IntelMPXTablePlugin.cpp:199-218
+  if (arch == llvm::Triple::ArchType::x86_64) {
+lbound = toU64(bt_entry_v[7], bt_entry_v[6], bt_entry_v[5], bt_entry_v[4],
+   bt_entry_v[3], bt_entry_v[2], bt_entry_v[1], bt_entry_v[0]);
+ubound =
+~toU64(bt_entry_v[15], bt_entry_v[14], bt_entry_v[13], bt_entry_v[12],
+   bt_entry_v[11], bt_entry_v[10], bt_entry_v[9], bt_entry_v[8]);
+value =

clayborg wrote:
> Use SBData and you don't need the "if (arch == ...)" since SBData knows the 
> address byte size:
> 
> ```
> SBError error;
> SBData data;
> uint32_t addr_size = target.GetAddressByteSize();
> data.SetData(error, bt_entry_v.data(), bt_entry_v.size(), 
> target.GetByteOrder(), addr_size);
> 
> lldb::addr_t lbound = data.GetAddress(error, 0 * addr_size);
> lldb::addr_t ubound  = data.GetAddress(error, 1 * addr_size);
> uint64_t value = data.GetAddress(error, 2 * addr_size);
> uint64_t meta = data.GetAddress(error, 3 * addr_size);
> ```
same as above.



Comment at: tools/intel-mpx/IntelMPXTablePlugin.cpp:313-314
+
+  lldb::SBData bndcfgu_data = bndcfgu_val.GetData();
+  bndcfgu = bndcfgu_data.GetUnsignedInt64(error, 0);
+  if (!error.Success()) {

clayborg wrote:
> No need to use SBData here, the SBValue can provide what you need. You use 
> SBValue::GetValueAsUnsigned() and specify the invalid value to return as the 
> argument (zero for nullptr):
> ```
> bndcfgu = bndcfgu_val.GetValueAsUnsigned(0); 
> ```
This also doesn't work, it returns the error: "could not resolve value"., which 
is why I opted for using SBData when I first wrote this code.



Comment at: tools/intel-mpx/IntelMPXTablePlugin.cpp:359
+
+  if (!GetInitInfo(debugger, target, arch, frame, bndcfgu, arg, ptr, 
result,
+   error))

clayborg wrote:
> I would either extract the target here before passing to any other functions 
> like this one and only pass the target. There is no need to pass both the 
> debugger and the target since you can do "target.GetDebugger()" anytime you 
> need the debugger from the target. You can also remove the "frame" variable 
> from this since it is only used in GetInitInfo().
I just wanted to avoid repeating the code to initialize the target and have it 
only inside GetInitInfo.


https://reviews.llvm.org/D29078



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


[Lldb-commits] [PATCH] D29078: This patch implements a command to access and manipulate the Intel(R) MPX Boundary Tables.

2017-01-25 Thread Valentina Giusti via Phabricator via lldb-commits
valentinagiusti updated this revision to Diff 85733.
valentinagiusti added a comment.

Applied some of the proposed changes.


https://reviews.llvm.org/D29078

Files:
  tools/CMakeLists.txt
  tools/intel-mpx/CMakeLists.txt
  tools/intel-mpx/IntelMPXTablePlugin.cpp
  tools/intel-mpx/test/Makefile
  tools/intel-mpx/test/README.txt
  tools/intel-mpx/test/TestMPXTable.py
  tools/intel-mpx/test/main.cpp

Index: tools/intel-mpx/test/main.cpp
===
--- /dev/null
+++ tools/intel-mpx/test/main.cpp
@@ -0,0 +1,48 @@
+//===-- main.cpp *- C++ -*-===//
+
+ The LLVM Compiler Infrastructure
+
+ This file is distributed under the University of Illinois Open Source
+ License. See LICENSE.TXT for details.
+
+===--===//
+//
+
+const int size = 5;
+
+#include 
+#include 
+#include 
+
+void func(int *ptr) {
+  int *tmp;
+
+#if defined  __GNUC__ && !defined __INTEL_COMPILER
+  __builtin___bnd_store_ptr_bounds ((void**)&ptr, ptr);
+#endif
+  tmp = ptr + size - 1;
+#if defined  __GNUC__ && !defined __INTEL_COMPILER
+  __builtin___bnd_store_ptr_bounds ((void**)&tmp, tmp);
+#endif
+  tmp = (int*)0x2; // Break 2.
+
+  return; // Break 3.
+}
+
+int
+main(int argc, char const *argv[])
+{
+  // This call returns 0 only if the CPU and the kernel support Intel(R) MPX.
+  if (prctl(PR_MPX_ENABLE_MANAGEMENT, 0, 0, 0, 0) != 0)
+return -1;
+
+  int*  a = (int *) calloc(size, sizeof(int));
+#if defined  __GNUC__ && !defined __INTEL_COMPILER
+  __builtin___bnd_store_ptr_bounds ((void**)&a, a);
+#endif
+  func(a); // Break 1.
+
+  free(a); // Break 4.
+
+  return 0;
+}
Index: tools/intel-mpx/test/TestMPXTable.py
===
--- /dev/null
+++ tools/intel-mpx/test/TestMPXTable.py
@@ -0,0 +1,168 @@
+"""
+Test mpx-table command.
+"""
+
+from __future__ import print_function
+
+
+import os
+import time
+import re
+import lldb
+from lldbsuite.test.decorators import *
+from lldbsuite.test.lldbtest import *
+from lldbsuite.test import lldbutil
+
+
+class TestMPXTable(TestBase):
+
+mydir = TestBase.compute_mydir(__file__)
+
+def setUp(self):
+TestBase.setUp(self)
+
+@skipIf(compiler="clang")
+@skipIf(oslist=no_match(['linux']))
+@skipIf(archs=no_match(['i386', 'x86_64']))
+@skipIf(compiler="gcc", compiler_version=["<", "5"]) #GCC version >= 5 supports Intel(R) MPX.
+def test_show_command(self):
+"""Test 'mpx-table show' command"""
+self.build()
+
+lldb_exec_dir = os.environ["LLDB_IMPLIB_DIR"]
+lldb_lib_dir = os.path.join(lldb_exec_dir, os.pardir, "lib")
+plugin_file = os.path.join(lldb_lib_dir, "liblldb-intel-mpxtable.so")
+if not os.path.isfile(plugin_file):
+self.skipTest("Intel(R) mpx-table plugin missing.")
+plugin_command = " "
+seq = ("plugin", "load", plugin_file)
+plugin_command = plugin_command.join(seq)
+self.runCmd(plugin_command)
+
+exe = os.path.join(os.getcwd(), "a.out")
+self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
+
+self.b1 = line_number('main.cpp', '// Break 1.')
+self.b2 = line_number('main.cpp', '// Break 2.')
+self.b3 = line_number('main.cpp', '// Break 3.')
+self.b4 = line_number('main.cpp', '// Break 4.')
+lldbutil.run_break_set_by_file_and_line(self, "main.cpp", self.b1, num_expected_locations=1)
+lldbutil.run_break_set_by_file_and_line(self, "main.cpp", self.b2, num_expected_locations=1)
+lldbutil.run_break_set_by_file_and_line(self, "main.cpp", self.b3, num_expected_locations=1)
+lldbutil.run_break_set_by_file_and_line(self, "main.cpp", self.b4, num_expected_locations=1)
+self.runCmd("run", RUN_SUCCEEDED)
+
+target = self.dbg.GetSelectedTarget()
+process = target.GetProcess()
+
+if (process.GetState() == lldb.eStateExited):
+self.skipTest("Intel(R) MPX is not supported.")
+else:
+self.expect("thread backtrace", STOPPED_DUE_TO_BREAKPOINT,
+substrs = ["stop reason = breakpoint 1."])
+
+self.expect("mpx-table show a",
+ substrs = ['lbound = 0x',
+', ubound = 0x',
+'(pointer value = 0x',
+', metadata = 0x',
+')'],
+ error = False)
+
+self.expect("continue", STOPPED_DUE_TO_BREAKPOINT,
+ substrs = ["stop reason = breakpoint 2."])
+
+# Check that out of scope pointer cannot be reached.
+#
+self.expect("mpx-table show a",
+ substrs = ['Invalid pointer.'],
+ error = True)
+
+self.expect

[Lldb-commits] [PATCH] D29126: [cmake] Remove VERSION property from executable targets

2017-01-25 Thread Pavel Labath via Phabricator via lldb-commits
labath created this revision.
Herald added a subscriber: ki.stfu.

Currently, in the default configuration, the "install" target will
install all llvm executables unversioned, except for three lldb tools
which will be installed versioned (with a non-versioned symlink). This
rectifies that situation.


https://reviews.llvm.org/D29126

Files:
  tools/driver/CMakeLists.txt
  tools/lldb-mi/CMakeLists.txt
  tools/lldb-server/CMakeLists.txt


Index: tools/lldb-server/CMakeLists.txt
===
--- tools/lldb-server/CMakeLists.txt
+++ tools/lldb-server/CMakeLists.txt
@@ -192,5 +192,3 @@
 endif()
 
 target_link_libraries(lldb-server ${LLDB_SYSTEM_LIBS})
-
-set_target_properties(lldb-server PROPERTIES VERSION ${LLDB_VERSION})
Index: tools/lldb-mi/CMakeLists.txt
===
--- tools/lldb-mi/CMakeLists.txt
+++ tools/lldb-mi/CMakeLists.txt
@@ -90,5 +90,3 @@
 if (HAVE_LIBPTHREAD)
   target_link_libraries(lldb-mi pthread)
 endif ()
-
-set_target_properties(lldb-mi PROPERTIES VERSION ${LLDB_VERSION})
Index: tools/driver/CMakeLists.txt
===
--- tools/driver/CMakeLists.txt
+++ tools/driver/CMakeLists.txt
@@ -29,6 +29,3 @@
   # soon as possible.
   target_link_libraries(lldb ${LLDB_USED_LIBS})
 endif()
-
-set_target_properties(lldb PROPERTIES VERSION ${LLDB_VERSION})
-


Index: tools/lldb-server/CMakeLists.txt
===
--- tools/lldb-server/CMakeLists.txt
+++ tools/lldb-server/CMakeLists.txt
@@ -192,5 +192,3 @@
 endif()
 
 target_link_libraries(lldb-server ${LLDB_SYSTEM_LIBS})
-
-set_target_properties(lldb-server PROPERTIES VERSION ${LLDB_VERSION})
Index: tools/lldb-mi/CMakeLists.txt
===
--- tools/lldb-mi/CMakeLists.txt
+++ tools/lldb-mi/CMakeLists.txt
@@ -90,5 +90,3 @@
 if (HAVE_LIBPTHREAD)
   target_link_libraries(lldb-mi pthread)
 endif ()
-
-set_target_properties(lldb-mi PROPERTIES VERSION ${LLDB_VERSION})
Index: tools/driver/CMakeLists.txt
===
--- tools/driver/CMakeLists.txt
+++ tools/driver/CMakeLists.txt
@@ -29,6 +29,3 @@
   # soon as possible.
   target_link_libraries(lldb ${LLDB_USED_LIBS})
 endif()
-
-set_target_properties(lldb PROPERTIES VERSION ${LLDB_VERSION})
-
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [PATCH] D29126: [cmake] Remove VERSION property from executable targets

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

@sylvestre.ledru, I know that debian installs all llvm tools versioned, but I 
have no idea through which mechanism. I am guessing it must be something 
different than this, as this is lldb-specific. Do you know if you would be 
impacted by this?


https://reviews.llvm.org/D29126



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


[Lldb-commits] [PATCH] D29126: [cmake] Remove VERSION property from executable targets

2017-01-25 Thread Michał Górny via Phabricator via lldb-commits
mgorny added a comment.

Technically the patch looks sane; however, I suggest you wait for some input 
from the others. As for Gentoo, I don't think we ever really cared for LLDB 
being versioned — only clang.


https://reviews.llvm.org/D29126



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


[Lldb-commits] [PATCH] D29078: This patch implements a command to access and manipulate the Intel(R) MPX Boundary Tables.

2017-01-25 Thread Greg Clayton via Phabricator via lldb-commits
clayborg added inline comments.



Comment at: tools/intel-mpx/IntelMPXTablePlugin.cpp:151
+  //
+  bd_entry--;
+

There is indeed a bug in SBData::SetData():

```
void SBData::SetData(lldb::SBError &error, const void *buf, size_t size,
 lldb::ByteOrder endian, uint8_t addr_size) {
  if (!m_opaque_sp.get())
m_opaque_sp.reset(new DataExtractor(buf, size, endian, addr_size));
  else
m_opaque_sp->SetData(buf, size, endian);
```

Note that if "m_opaque_sp" already exists, it doesn't set the address byte 
size. 

 I will fix this and check it in, then things should work for you.



Comment at: tools/intel-mpx/IntelMPXTablePlugin.cpp:219
+}
+
+static std::vector uIntToU8(uint64_t input, size_t size) {

I'll fix SBData and this should work



Comment at: tools/intel-mpx/IntelMPXTablePlugin.cpp:315
+  return true;
+}
+

The GetValueAsUnsigned() should work. If you look at an x86_64 program:

```
(lldb) script
>>> r = lldb.frame.FindRegister('rax')
>>> print r
(unsigned long) rax = 0x00010f10
>>> print r.GetValueAsUnsigned(0)
4294971152
>>> hex(4294971152)
'0x10f10'
```

Maybe you defined "bndcfgu" the register in a way that makes this not work? 
This should work and you should step through the code to see why this fails for 
"bndcfgu". Let me know what you find.


https://reviews.llvm.org/D29078



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


[Lldb-commits] [PATCH] D29078: This patch implements a command to access and manipulate the Intel(R) MPX Boundary Tables.

2017-01-25 Thread Greg Clayton via Phabricator via lldb-commits
clayborg added inline comments.



Comment at: tools/intel-mpx/IntelMPXTablePlugin.cpp:151
+  //
+  bd_entry--;
+

clayborg wrote:
> There is indeed a bug in SBData::SetData():
> 
> ```
> void SBData::SetData(lldb::SBError &error, const void *buf, size_t size,
>  lldb::ByteOrder endian, uint8_t addr_size) {
>   if (!m_opaque_sp.get())
> m_opaque_sp.reset(new DataExtractor(buf, size, endian, addr_size));
>   else
> m_opaque_sp->SetData(buf, size, endian);
> ```
> 
> Note that if "m_opaque_sp" already exists, it doesn't set the address byte 
> size. 
> 
>  I will fix this and check it in, then things should work for you.
Actually if you can fix this with your patch that might be faster. llvm.org 
seems to be unreachable for me right now.

Just change the void SBData::SetData(...) function from:

```
  if (!m_opaque_sp.get())
m_opaque_sp.reset(new DataExtractor(buf, size, endian, addr_size));
  else
m_opaque_sp->SetData(buf, size, endian);
```

To:
```
  if (!m_opaque_sp.get())
m_opaque_sp.reset(new DataExtractor(buf, size, endian, addr_size));
  else
  {
m_opaque_sp->SetData(buf, size, endian);
m_opaque_sp->SetAddressByteSize(addr_size);
  }
```



https://reviews.llvm.org/D29078



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


[Lldb-commits] [PATCH] D29144: LLDB: fix for TestCallThatThrows.py test fail

2017-01-25 Thread Boris Ulasevich via Phabricator via lldb-commits
boris.ulasevich created this revision.

Additional change for https://reviews.llvm.org/D26497, 
https://reviews.llvm.org/D28945 - fix for TestCallThatThrows test fail (works 
for Mac only).

Recent change of stop reason priorities affected function call mechanism: it is 
important that CallFunctionThreadPlan complete event StopInfo should not be 
overridden by other simultaneous events (internal breakpoint?), otherwise 
caller do not get proper return value.

This change is a kind of fast fix for the test broken by my yesterday's change. 
I should admit, I do not like the code around, but any further change leads to 
tests fails with tedious LIBLLDB_LOG_STEP logs investigation.


Repository:
  rL LLVM

https://reviews.llvm.org/D29144

Files:
  lldb/source/Target/Process.cpp


Index: lldb/source/Target/Process.cpp
===
--- lldb/source/Target/Process.cpp
+++ lldb/source/Target/Process.cpp
@@ -5248,15 +5248,17 @@
   do_resume = false;
   handle_running_event = true;
 } else {
+  if (thread->IsThreadPlanDone(thread_plan_sp.get())) {
+// clean preset StopInfo value when we have out plan 
completed
+thread_sp->ResetStopInfo();
+  }
   StopInfoSP stop_info_sp(thread_sp->GetStopInfo());
   StopReason stop_reason = eStopReasonInvalid;
   if (stop_info_sp)
 stop_reason = stop_info_sp->GetStopReason();
 
-  // FIXME: We only check if the stop reason is plan complete,
-  // should we make sure that
-  // it is OUR plan that is complete?
-  if (stop_reason == eStopReasonPlanComplete) {
+  if (stop_reason == eStopReasonPlanComplete &&
+  thread->IsThreadPlanDone(thread_plan_sp.get())) {
 if (log)
   log->PutCString("Process::RunThreadPlan(): execution "
   "completed successfully.");


Index: lldb/source/Target/Process.cpp
===
--- lldb/source/Target/Process.cpp
+++ lldb/source/Target/Process.cpp
@@ -5248,15 +5248,17 @@
   do_resume = false;
   handle_running_event = true;
 } else {
+  if (thread->IsThreadPlanDone(thread_plan_sp.get())) {
+// clean preset StopInfo value when we have out plan completed
+thread_sp->ResetStopInfo();
+  }
   StopInfoSP stop_info_sp(thread_sp->GetStopInfo());
   StopReason stop_reason = eStopReasonInvalid;
   if (stop_info_sp)
 stop_reason = stop_info_sp->GetStopReason();
 
-  // FIXME: We only check if the stop reason is plan complete,
-  // should we make sure that
-  // it is OUR plan that is complete?
-  if (stop_reason == eStopReasonPlanComplete) {
+  if (stop_reason == eStopReasonPlanComplete &&
+  thread->IsThreadPlanDone(thread_plan_sp.get())) {
 if (log)
   log->PutCString("Process::RunThreadPlan(): execution "
   "completed successfully.");
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [lldb] r293098 - Link debugserver against Foundation to get access to NSProcessInfo.

2017-01-25 Thread Sean Callanan via lldb-commits
Author: spyffe
Date: Wed Jan 25 15:32:00 2017
New Revision: 293098

URL: http://llvm.org/viewvc/llvm-project?rev=293098&view=rev
Log:
Link debugserver against Foundation to get access to NSProcessInfo.

debugserver-mini can't use Foundation so disable that code there. 

Modified:
lldb/trunk/tools/debugserver/debugserver.xcodeproj/project.pbxproj
lldb/trunk/tools/debugserver/source/MacOSX/MachProcess.mm

Modified: lldb/trunk/tools/debugserver/debugserver.xcodeproj/project.pbxproj
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/debugserver/debugserver.xcodeproj/project.pbxproj?rev=293098&r1=293097&r2=293098&view=diff
==
--- lldb/trunk/tools/debugserver/debugserver.xcodeproj/project.pbxproj 
(original)
+++ lldb/trunk/tools/debugserver/debugserver.xcodeproj/project.pbxproj Wed Jan 
25 15:32:00 2017
@@ -98,6 +98,7 @@
456F67691AD46CE9002850C2 /* DNBArchImplARM64.cpp in Sources */ 
= {isa = PBXBuildFile; fileRef = 266B5ECF1460A68200E43F0A /* 
DNBArchImplARM64.cpp */; };
456F676B1AD46CE9002850C2 /* CoreFoundation.framework in 
Frameworks */ = {isa = PBXBuildFile; fileRef = 26ACA3340D3E956300A2120B /* 
CoreFoundation.framework */; settings = {ATTRIBUTES = (Required, ); }; };
4971AE7213D10F4F00649E37 /* HasAVX.s in Sources */ = {isa = 
PBXBuildFile; fileRef = 4971AE7113D10F4F00649E37 /* HasAVX.s */; };
+   49D404621E39260F00570CDC /* Foundation.framework in Frameworks 
*/ = {isa = PBXBuildFile; fileRef = 49D404611E39260F00570CDC /* 
Foundation.framework */; };
AF48558C1D75126800D19C07 /* StdStringExtractor.cpp in Sources 
*/ = {isa = PBXBuildFile; fileRef = AF48558B1D75126800D19C07 /* 
StdStringExtractor.cpp */; };
AF48558D1D75127500D19C07 /* StdStringExtractor.cpp in Sources 
*/ = {isa = PBXBuildFile; fileRef = AF48558B1D75126800D19C07 /* 
StdStringExtractor.cpp */; };
AFEC3364194A8B0B00FF05C6 /* Genealogy.cpp in Sources */ = {isa 
= PBXBuildFile; fileRef = AFEC3363194A8B0B00FF05C6 /* Genealogy.cpp */; };
@@ -210,6 +211,7 @@
456F67721AD46CE9002850C2 /* debugserver-nonui */ = {isa = 
PBXFileReference; explicitFileType = "compiled.mach-o.executable"; 
includeInIndex = 0; path = "debugserver-nonui"; sourceTree = 
BUILT_PRODUCTS_DIR; };
4971AE7013D10F4F00649E37 /* HasAVX.h */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = 
HasAVX.h; sourceTree = ""; };
4971AE7113D10F4F00649E37 /* HasAVX.s */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = 
HasAVX.s; sourceTree = ""; };
+   49D404611E39260F00570CDC /* Foundation.framework */ = {isa = 
PBXFileReference; lastKnownFileType = wrapper.framework; name = 
Foundation.framework; path = System/Library/Frameworks/Foundation.framework; 
sourceTree = SDKROOT; };
49F530111331519C008956F6 /* MachRegisterStatesI386.h */ = {isa 
= PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path 
= MachRegisterStatesI386.h; sourceTree = ""; };
49F5301213316D7F008956F6 /* MachRegisterStatesX86_64.h */ = 
{isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; 
path = MachRegisterStatesX86_64.h; sourceTree = ""; };
9457ECF61419864100DFE7D8 /* stack_logging.h */ = {isa = 
PBXFileReference; lastKnownFileType = sourcecode.c.h; path = stack_logging.h; 
sourceTree = ""; };
@@ -232,6 +234,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
+   49D404621E39260F00570CDC /* 
Foundation.framework in Frameworks */,
26CE05CF115C36F70022F371 /* 
CoreFoundation.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
@@ -253,6 +256,7 @@
26ACA3330D3E94F200A2120B /* Framework */,
26C637D50C71334A0024798E /* source */,
1AB674ADFE9D54B511CA2CBB /* Products */,
+   49D404601E39260F00570CDC /* Frameworks */,
);
name = dbgnub;
sourceTree = "";
@@ -483,6 +487,14 @@
sourceTree = "";
usesTabs = 0;
};
+   49D404601E39260F00570CDC /* Frameworks */ = {
+   isa = PBXGroup;
+   children = (
+   49D404611E39260F00570CDC /* 
Foundation.framework */,
+   );
+   name = Frameworks;
+   sourceTree = "";
+   };
 /* End PBXGroup section */
 
 /* Begin PBXNativeTarget section */
@@ -874,8

Re: [Lldb-commits] [lldb] r292930 - Bug 30863 - Step doesn't stop with conditional breakpoint on the next line

2017-01-25 Thread Tim Hammerquist via lldb-commits
While the Green Dragon job where this change was first built failed for
infrastructure reasons in Jenkins, the LLDB build has been failing in the
same way since this commit was made, and looks like it may be related. Can
this be confirmed?

*First built*:
http://lab.llvm.org:8080/green/job/lldb_build_test/24539/console
*New commits*: 292930 to lldb by bulasevich; 292929 to libcxx by ericwf
*Failure*: ERROR: Connection was broken: java.io.IOException: Unexpected
termination of the channel

*Next build*:
http://lab.llvm.org:8080/green/job/lldb_build_test/24540/console
*New commits*: none
*Failures*:
FAIL: test_dsym (expression_command/call-throws/TestCallThatThrows.py)
FAIL: test_dwarf (expression_command/call-throws/TestCallThatThrows.py)
FAIL: test_gmodules (expression_command/call-throws/TestCallThatThrows.py)

*Most recent build*:
http://lab.llvm.org:8080/green/job/lldb_build_test/24605/console
*Failures*:
FAIL: test_dsym (expression_command/call-throws/TestCallThatThrows.py)
FAIL: test_dwarf (expression_command/call-throws/TestCallThatThrows.py)
FAIL: test_gmodules (expression_command/call-throws/TestCallThatThrows.py)

-Tim

On Tue, Jan 24, 2017 at 5:15 AM, Boris Ulasevich via lldb-commits <
lldb-commits@lists.llvm.org> wrote:

> Author: bulasevich
> Date: Tue Jan 24 07:15:19 2017
> New Revision: 292930
>
> URL: http://llvm.org/viewvc/llvm-project?rev=292930&view=rev
> Log:
> Bug 30863 - Step doesn't stop with conditional breakpoint on the next line
> Differential Revisions:
>   https://reviews.llvm.org/D26497 (committed r290168, temporary reverted
> r290197)
>   https://reviews.llvm.org/D28945 (fix for Ubuntu tests fail)
>
> Added:
> lldb/trunk/packages/Python/lldbsuite/test/functionalities/breakpoint/
> step_over_breakpoint/
>   - copied from r290180, lldb/trunk/packages/Python/lldbsuite/test/
> functionalities/breakpoint/step_over_breakpoint/
> Modified:
> lldb/trunk/include/lldb/Target/Thread.h
> lldb/trunk/include/lldb/Target/ThreadPlan.h
> lldb/trunk/source/Target/StopInfo.cpp
> lldb/trunk/source/Target/Thread.cpp
> lldb/trunk/source/Target/ThreadPlanStepInstruction.cpp
> lldb/trunk/source/Target/ThreadPlanStepRange.cpp
>
> Modified: lldb/trunk/include/lldb/Target/Thread.h
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/
> lldb/Target/Thread.h?rev=292930&r1=292929&r2=292930&view=diff
> 
> ==
> --- lldb/trunk/include/lldb/Target/Thread.h (original)
> +++ lldb/trunk/include/lldb/Target/Thread.h Tue Jan 24 07:15:19 2017
> @@ -126,6 +126,7 @@ public:
> // 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;
> @@ -1029,6 +1030,15 @@ public:
>bool WasThreadPlanDiscarded(ThreadPlan *plan);
>
>//--
> +  /// Check if we have completed plan to override breakpoint stop reason
> +  ///
> +  /// @return
> +  /// Returns true if completed plan stack is not empty
> +  /// false otherwise.
> +  //--
> +  bool CompletedPlanOverridesBreakpoint();
> +
> +  //--
>/// Queues a generic thread plan.
>///
>/// @param[in] plan_sp
> @@ -1213,6 +1223,8 @@ public:
>
>void SetStopInfo(const lldb::StopInfoSP &stop_info_sp);
>
> +  void ResetStopInfo();
> +
>void SetShouldReportStop(Vote vote);
>
>//--
> 
>
> Modified: lldb/trunk/include/lldb/Target/ThreadPlan.h
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/
> lldb/Target/ThreadPlan.h?rev=292930&r1=292929&r2=292930&view=diff
> 
> ==
> --- lldb/trunk/include/lldb/Target/ThreadPlan.h (original)
> +++ lldb/trunk/include/lldb/Target/ThreadPlan.h Tue Jan 24 07:15:19 2017
> @@ -40,9 +40,10 @@ namespace lldb_private {
>  //  The thread maintaining a thread plan stack, and you program the
> actions of a
>  //  particular thread
>  //  by pushing plans onto the plan stack.
> -//  There is always a "Current" plan, which is the head of the plan stack,
> +//  There is always a "Current" plan, which is the top of the plan stack,
>  //  though in some cases
> -//  a plan may defer to plans higher in the stack for some piece of
> information.
> +//  a plan may defer to plans higher in the stack for some piece of
> information
> +//  (let us define that the plan stack grows downwards).
>  //
>  //  The plan stack is never empty, there is alw

[Lldb-commits] [PATCH] D29144: LLDB: fix for TestCallThatThrows.py test fail

2017-01-25 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.

Can you explain in more detail the scenario this is addressing?  You seem to be 
handling a case where some plan has been completed, but it is not the function 
call plan we are waiting for.  What was the completed thread plan which WAS 
done but wasn't the function call thread plan?  Calling nested functions is 
tricky, and I'd like to understand what is going on when this goes wrong.

BTW, if you only have a Mac available to you, you may be able to reproduce the 
Linux behavior locally by going into ProcessGDBRemote::DoAllocateMemory and 
turning off the code that checks SupportsAllocDeallocMemory, forcing us to use 
the InferiorMmap call instead.  That might make development easier for you.


Repository:
  rL LLVM

https://reviews.llvm.org/D29144



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


[Lldb-commits] [lldb] r293102 - Fix SBData::SetData() so that it always sets the address byte size correctly and added a test.

2017-01-25 Thread Greg Clayton via lldb-commits
Author: gclayton
Date: Wed Jan 25 15:50:28 2017
New Revision: 293102

URL: http://llvm.org/viewvc/llvm-project?rev=293102&view=rev
Log:
Fix SBData::SetData() so that it always sets the address byte size correctly 
and added a test.


Modified:
lldb/trunk/packages/Python/lldbsuite/test/python_api/sbdata/TestSBData.py
lldb/trunk/source/API/SBData.cpp

Modified: 
lldb/trunk/packages/Python/lldbsuite/test/python_api/sbdata/TestSBData.py
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/python_api/sbdata/TestSBData.py?rev=293102&r1=293101&r2=293102&view=diff
==
--- lldb/trunk/packages/Python/lldbsuite/test/python_api/sbdata/TestSBData.py 
(original)
+++ lldb/trunk/packages/Python/lldbsuite/test/python_api/sbdata/TestSBData.py 
Wed Jan 25 15:50:28 2017
@@ -22,6 +22,26 @@ class SBDataAPICase(TestBase):
 self.line = line_number('main.cpp', '// set breakpoint here')
 
 @add_test_categories(['pyapi'])
+def test_byte_order_and_address_byte_size(self):
+"""Test the SBData::SetData() to ensure the byte order and address 
+byte size are obeyed"""
+addr_data = '\x11\x22\x33\x44\x55\x66\x77\x88'
+error = lldb.SBError()
+data = lldb.SBData()
+data.SetData(error, addr_data, lldb.eByteOrderBig, 4)
+addr = data.GetAddress(error, 0)
+self.assertTrue(addr == 0x11223344);
+data.SetData(error, addr_data, lldb.eByteOrderBig, 8)
+addr = data.GetAddress(error, 0)
+self.assertTrue(addr == 0x1122334455667788);
+data.SetData(error, addr_data, lldb.eByteOrderLittle, 4)
+addr = data.GetAddress(error, 0)
+self.assertTrue(addr == 0x44332211);
+data.SetData(error, addr_data, lldb.eByteOrderLittle, 8)
+addr = data.GetAddress(error, 0)
+self.assertTrue(addr == 0x8877665544332211);
+
+@add_test_categories(['pyapi'])
 def test_with_run_command(self):
 """Test the SBData APIs."""
 self.build()

Modified: lldb/trunk/source/API/SBData.cpp
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/source/API/SBData.cpp?rev=293102&r1=293101&r2=293102&view=diff
==
--- lldb/trunk/source/API/SBData.cpp (original)
+++ lldb/trunk/source/API/SBData.cpp Wed Jan 25 15:50:28 2017
@@ -383,7 +383,11 @@ void SBData::SetData(lldb::SBError &erro
   if (!m_opaque_sp.get())
 m_opaque_sp.reset(new DataExtractor(buf, size, endian, addr_size));
   else
+  {
 m_opaque_sp->SetData(buf, size, endian);
+m_opaque_sp->SetAddressByteSize(addr_size);
+  }
+
   if (log)
 log->Printf("SBData::SetData (error=%p,buf=%p,size=%" PRIu64
 ",endian=%d,addr_size=%c) => "


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


[Lldb-commits] [PATCH] D29078: This patch implements a command to access and manipulate the Intel(R) MPX Boundary Tables.

2017-01-25 Thread Greg Clayton via Phabricator via lldb-commits
clayborg added a comment.

I fixed SBData with:

  Sendingpackages/Python/lldbsuite/test/python_api/sbdata/TestSBData.py
  Sendingsource/API/SBData.cpp
  Transmitting file data ..done
  Committing transaction...
  Committed revision 293102.


https://reviews.llvm.org/D29078



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


[Lldb-commits] [PATCH] D29078: This patch implements a command to access and manipulate the Intel(R) MPX Boundary Tables.

2017-01-25 Thread Greg Clayton via Phabricator via lldb-commits
clayborg added a comment.

Let me know why your GetValueAsUnsigned isn't working on your register by 
stepping through it.


https://reviews.llvm.org/D29078



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


[Lldb-commits] [lldb] r293135 - Instead of weak-linking against LoggingSupport framework (which

2017-01-25 Thread Jason Molenda via lldb-commits
Author: jmolenda
Date: Wed Jan 25 20:13:43 2017
New Revision: 293135

URL: http://llvm.org/viewvc/llvm-project?rev=293135&view=rev
Log:
Instead of weak-linking against LoggingSupport framework (which
requires that this private framework be available - and it is not
available earlier than macOS 10.12 - to build lldb), dlopen the
framework binary on demand in debugserver.  We're already using
dlsym() to look up all the symbols so there is no need to use weak
linking here.

 

Modified:
lldb/trunk/tools/debugserver/source/MacOSX/DarwinLog/DarwinLogCollector.cpp

Modified: 
lldb/trunk/tools/debugserver/source/MacOSX/DarwinLog/DarwinLogCollector.cpp
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/debugserver/source/MacOSX/DarwinLog/DarwinLogCollector.cpp?rev=293135&r1=293134&r2=293135&view=diff
==
--- lldb/trunk/tools/debugserver/source/MacOSX/DarwinLog/DarwinLogCollector.cpp 
(original)
+++ lldb/trunk/tools/debugserver/source/MacOSX/DarwinLog/DarwinLogCollector.cpp 
Wed Jan 25 20:13:43 2017
@@ -50,6 +50,7 @@ bool LookupSPICalls() {
   static bool s_has_spi;
 
   std::call_once(s_once_flag, [] {
+dlopen 
("/System/Library/PrivateFrameworks/LoggingSupport.framework/LoggingSupport", 
RTLD_NOW);
 s_os_activity_stream_for_pid = (os_activity_stream_for_pid_t)dlsym(
 RTLD_DEFAULT, "os_activity_stream_for_pid");
 s_os_activity_stream_resume = (os_activity_stream_resume_t)dlsym(


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


[Lldb-commits] [lldb] r293140 - Add Foundation to the debugserver-mini dependencies;

2017-01-25 Thread Jason Molenda via lldb-commits
Author: jmolenda
Date: Wed Jan 25 20:27:35 2017
New Revision: 293140

URL: http://llvm.org/viewvc/llvm-project?rev=293140&view=rev
Log:
Add Foundation to the debugserver-mini dependencies;
debugserver-mini can use Foundation.


Modified:
lldb/trunk/tools/debugserver/debugserver.xcodeproj/project.pbxproj

Modified: lldb/trunk/tools/debugserver/debugserver.xcodeproj/project.pbxproj
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/debugserver/debugserver.xcodeproj/project.pbxproj?rev=293140&r1=293139&r2=293140&view=diff
==
--- lldb/trunk/tools/debugserver/debugserver.xcodeproj/project.pbxproj 
(original)
+++ lldb/trunk/tools/debugserver/debugserver.xcodeproj/project.pbxproj Wed Jan 
25 20:27:35 2017
@@ -101,6 +101,7 @@
49D404621E39260F00570CDC /* Foundation.framework in Frameworks 
*/ = {isa = PBXBuildFile; fileRef = 49D404611E39260F00570CDC /* 
Foundation.framework */; };
AF48558C1D75126800D19C07 /* StdStringExtractor.cpp in Sources 
*/ = {isa = PBXBuildFile; fileRef = AF48558B1D75126800D19C07 /* 
StdStringExtractor.cpp */; };
AF48558D1D75127500D19C07 /* StdStringExtractor.cpp in Sources 
*/ = {isa = PBXBuildFile; fileRef = AF48558B1D75126800D19C07 /* 
StdStringExtractor.cpp */; };
+   AFA3FCA11E39984900218D5E /* Foundation.framework in Frameworks 
*/ = {isa = PBXBuildFile; fileRef = 49D404611E39260F00570CDC /* 
Foundation.framework */; };
AFEC3364194A8B0B00FF05C6 /* Genealogy.cpp in Sources */ = {isa 
= PBXBuildFile; fileRef = AFEC3363194A8B0B00FF05C6 /* Genealogy.cpp */; };
 /* End PBXBuildFile section */
 
@@ -244,6 +245,7 @@
buildActionMask = 2147483647;
files = (
456F676B1AD46CE9002850C2 /* 
CoreFoundation.framework in Frameworks */,
+   AFA3FCA11E39984900218D5E /* 
Foundation.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};


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


[Lldb-commits] [PATCH] D29144: LLDB: fix for TestCallThatThrows.py test fail

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

I work on the case when we have two plans complete: internal breakpoint plus 
our function call plan:

  Active plan stack:
Element 0: Base thread plan.
  Completed Plan Stack:
Element 0: Run to address: 0x00010e78be00 using breakpoint: 0 - but the 
breakpoint has been deleted.
Element 1: Thread plan to call 0x10e7c4bf0


Repository:
  rL LLVM

https://reviews.llvm.org/D29144



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