[Lldb-commits] LLVM buildmaster will be restarted tonight

2016-06-16 Thread Galina Kistanova via lldb-commits
Hello everyone,

LLVM buildmaster will be restarted after 8 PM Pacific time today.

Thanks

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


Re: [Lldb-commits] [PATCH] D21164: Improve watchpoint error reporting specially for arm/aarch64 targets

2016-06-16 Thread Muhammad Omair Javaid via lldb-commits
omjavaid added a comment.

@clayborg
Any comments about this change? Thanks!


http://reviews.llvm.org/D21164



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


Re: [Lldb-commits] [PATCH] D21280: Allow installing watchpoints at less than 8-byte alligned addresses for AArch64 targets

2016-06-16 Thread Muhammad Omair Javaid via lldb-commits
This revision was automatically updated to reflect the committed changes.
Closed by commit rL272916: Allow installing watchpoints at less than 8-byte 
alligned addresses for… (authored by omjavaid).

Changed prior to commit:
  http://reviews.llvm.org/D21280?vs=60942&id=60987#toc

Repository:
  rL LLVM

http://reviews.llvm.org/D21280

Files:
  
lldb/trunk/packages/Python/lldbsuite/test/functionalities/watchpoint/watchpoint_size/Makefile
  
lldb/trunk/packages/Python/lldbsuite/test/functionalities/watchpoint/watchpoint_size/TestWatchpointSizes.py
  
lldb/trunk/packages/Python/lldbsuite/test/functionalities/watchpoint/watchpoint_size/main.c
  lldb/trunk/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
  lldb/trunk/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
  lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp

Index: lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
===
--- lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
+++ lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
@@ -2059,7 +2059,8 @@
 {
 WatchpointSP wp_sp;
 ArchSpec::Core core = GetTarget().GetArchitecture().GetCore();
-if (core >= ArchSpec::kCore_mips_first && core <= ArchSpec::kCore_mips_last)
+if ((core >= ArchSpec::kCore_mips_first && core <= ArchSpec::kCore_mips_last) ||
+(core >= ArchSpec::eCore_arm_arm64 && core <= ArchSpec::eCore_arm_aarch64))
 wp_sp = GetTarget().GetWatchpointList().FindByAddress(wp_hit_addr);
 if (!wp_sp)
 wp_sp = GetTarget().GetWatchpointList().FindByAddress(wp_addr);
Index: lldb/trunk/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
===
--- lldb/trunk/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
+++ lldb/trunk/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
@@ -74,6 +74,9 @@
 GetWatchpointHitIndex(uint32_t &wp_index, lldb::addr_t trap_addr) override;
 
 lldb::addr_t
+GetWatchpointHitAddress (uint32_t wp_index) override;
+
+lldb::addr_t
 GetWatchpointAddress (uint32_t wp_index) override;
 
 uint32_t
@@ -161,6 +164,8 @@
 struct DREG
 {
 lldb::addr_t address;  // Breakpoint/watchpoint address value.
+lldb::addr_t hit_addr; // Address at which last watchpoint trigger exception occurred.
+lldb::addr_t real_addr;  // Address value that should cause target to stop.
 uint32_t control;  // Breakpoint/watchpoint control value.
 uint32_t refcount;  // Serves as enable/disable and refernce counter.
 };
Index: lldb/trunk/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
===
--- lldb/trunk/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
+++ lldb/trunk/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
@@ -566,6 +566,7 @@
 return LLDB_INVALID_INDEX32;
 		
 uint32_t control_value = 0, wp_index = 0;
+lldb::addr_t real_addr = addr;
 
 // Check if we are setting watchpoint other than read/write/access
 // Also update watchpoint flag to match AArch64 write-read bit configuration.
@@ -588,9 +589,23 @@
 return LLDB_INVALID_INDEX32;
 
 // Check 8-byte alignment for hardware watchpoint target address.
-// TODO: Add support for watching un-aligned addresses
+// Below is a hack to recalculate address and size in order to
+// make sure we can watch non 8-byte alligned addresses as well.
 if (addr & 0x07)
-return LLDB_INVALID_INDEX32;
+{
+uint8_t watch_mask = (addr & 0x07) + size;
+
+if (watch_mask > 0x08)
+return LLDB_INVALID_INDEX32;
+else if (watch_mask <= 0x02)
+size = 2;
+else if (watch_mask <= 0x04)
+size = 4;
+else
+size = 8;
+
+addr = addr & (~0x07);
+}
 
 // Setup control value
 control_value = watch_flags << 3;
@@ -620,6 +635,7 @@
 if ((m_hwp_regs[wp_index].control & 1) == 0)
 {
 // Update watchpoint in local cache
+m_hwp_regs[wp_index].real_addr = real_addr;
 m_hwp_regs[wp_index].address = addr;
 m_hwp_regs[wp_index].control = control_value;
 m_hwp_regs[wp_index].refcount = 1;
@@ -801,6 +817,7 @@
 if (m_hwp_regs[wp_index].refcount >= 1 && WatchpointIsEnabled(wp_index)
 && trap_addr >= watch_addr && trap_addr < watch_addr + watch_size)
 {
+m_hwp_regs[wp_index].hit_addr = trap

[Lldb-commits] [lldb] r272916 - Allow installing watchpoints at less than 8-byte alligned addresses for AArch64 targets

2016-06-16 Thread Omair Javaid via lldb-commits
Author: omjavaid
Date: Thu Jun 16 11:41:22 2016
New Revision: 272916

URL: http://llvm.org/viewvc/llvm-project?rev=272916&view=rev
Log:
Allow installing watchpoints at less than 8-byte alligned addresses for AArch64 
targets

This patch allows LLDB for AArch64 to watch all bytes, words or double words 
individually on non 8-byte alligned addresses.

This patch also adds tests to verify this functionality.

Differential revision: http://reviews.llvm.org/D21280


Added:

lldb/trunk/packages/Python/lldbsuite/test/functionalities/watchpoint/watchpoint_size/

lldb/trunk/packages/Python/lldbsuite/test/functionalities/watchpoint/watchpoint_size/Makefile

lldb/trunk/packages/Python/lldbsuite/test/functionalities/watchpoint/watchpoint_size/TestWatchpointSizes.py

lldb/trunk/packages/Python/lldbsuite/test/functionalities/watchpoint/watchpoint_size/main.c
Modified:
lldb/trunk/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
lldb/trunk/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp

Added: 
lldb/trunk/packages/Python/lldbsuite/test/functionalities/watchpoint/watchpoint_size/Makefile
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/watchpoint/watchpoint_size/Makefile?rev=272916&view=auto
==
--- 
lldb/trunk/packages/Python/lldbsuite/test/functionalities/watchpoint/watchpoint_size/Makefile
 (added)
+++ 
lldb/trunk/packages/Python/lldbsuite/test/functionalities/watchpoint/watchpoint_size/Makefile
 Thu Jun 16 11:41:22 2016
@@ -0,0 +1,5 @@
+LEVEL = ../../../make
+
+C_SOURCES := main.c
+
+include $(LEVEL)/Makefile.rules

Added: 
lldb/trunk/packages/Python/lldbsuite/test/functionalities/watchpoint/watchpoint_size/TestWatchpointSizes.py
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/watchpoint/watchpoint_size/TestWatchpointSizes.py?rev=272916&view=auto
==
--- 
lldb/trunk/packages/Python/lldbsuite/test/functionalities/watchpoint/watchpoint_size/TestWatchpointSizes.py
 (added)
+++ 
lldb/trunk/packages/Python/lldbsuite/test/functionalities/watchpoint/watchpoint_size/TestWatchpointSizes.py
 Thu Jun 16 11:41:22 2016
@@ -0,0 +1,117 @@
+"""
+Test watchpoint size cases (1-byte, 2-byte, 4-byte).
+Make sure we can watch all bytes, words or double words individually
+when they are packed in a 8-byte region.
+
+"""
+
+from __future__ import print_function
+
+import os, time
+import lldb
+from lldbsuite.test.decorators import *
+from lldbsuite.test.lldbtest import *
+from lldbsuite.test import lldbutil
+
+class WatchpointSizeTestCase(TestBase):
+NO_DEBUG_INFO_TESTCASE = True
+
+mydir = TestBase.compute_mydir(__file__)
+
+def setUp(self):
+# Call super's setUp().
+TestBase.setUp(self)
+
+# Source filename.
+self.source = 'main.c'
+
+# Output filename.
+self.exe_name = 'a.out'
+self.d = {'C_SOURCES': self.source, 'EXE': self.exe_name}
+
+@expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not 
supported
+@expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr24446: 
WINDOWS XFAIL TRIAGE - Watchpoints not supported on Windows")
+@expectedFailureAll(archs=['s390x']) # Read-write watchpoints not 
supported on SystemZ
+def test_byte_size_watchpoints_with_byte_selection(self):
+"""Test to selectively watch different bytes in a 8-byte array."""
+self.run_watchpoint_size_test('byteArray', 8, '1')
+
+@expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not 
supported
+@expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr24446: 
WINDOWS XFAIL TRIAGE - Watchpoints not supported on Windows")
+@expectedFailureAll(archs=['s390x']) # Read-write watchpoints not 
supported on SystemZ
+def test_two_byte_watchpoints_with_word_selection(self):
+"""Test to selectively watch different words in an 8-byte word 
array."""
+self.run_watchpoint_size_test('wordArray', 4, '2')
+
+@expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not 
supported
+@expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr24446: 
WINDOWS XFAIL TRIAGE - Watchpoints not supported on Windows")
+@expectedFailureAll(archs=['s390x']) # Read-write watchpoints not 
supported on SystemZ
+def test_four_byte_watchpoints_with_dword_selection(self):
+"""Test to selectively watch two double words in an 8-byte dword 
array."""
+self.run_watchpoint_size_test('dwordArray', 2, '4')
+
+def run_watchpoint_size_test(self, arrayName, array_size, watchsize):
+self.build(dictionary=self.d)
+self.setTearDownCleanup(dictionary=self.d)
+
+exe = os.path.join(os.getcwd(), self.exe_name)
+s

Re: [Lldb-commits] [PATCH] D21280: Allow installing watchpoints at less than 8-byte alligned addresses for AArch64 targets

2016-06-16 Thread Muhammad Omair Javaid via lldb-commits
omjavaid marked 3 inline comments as done.


Comment at: 
packages/Python/lldbsuite/test/functionalities/watchpoint/watchpoint_size/TestWatchpointSizes.py:104
@@ +103,3 @@
+self.expect("watchpoint list -v",
+substrs = ['hit_count = 2'])
+

labath wrote:
> I guess the intention here is to test both read and write watchpoints. If so, 
> could you state that somewhere (in a comment at least, if it's possible to 
> somehow verify the watchpoint type in code, even better). 
We cant possibly figure out the watchpoint type read or write based on output 
string emitted when watchpoint is hit.

I have added a comment here which tells the user about why hit count should be 
updated here.


http://reviews.llvm.org/D21280



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


[Lldb-commits] [lldb] r272902 - xfail TestWithModuleDebugging.py on macOS

2016-06-16 Thread Todd Fiala via lldb-commits
Author: tfiala
Date: Thu Jun 16 10:22:49 2016
New Revision: 272902

URL: http://llvm.org/viewvc/llvm-project?rev=272902&view=rev
Log:
xfail TestWithModuleDebugging.py on macOS

Tracked by:
https://llvm.org/bugs/show_bug.cgi?id=28156

Modified:

lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/gmodules/TestWithModuleDebugging.py

Modified: 
lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/gmodules/TestWithModuleDebugging.py
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/gmodules/TestWithModuleDebugging.py?rev=272902&r1=272901&r2=272902&view=diff
==
--- 
lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/gmodules/TestWithModuleDebugging.py
 (original)
+++ 
lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/gmodules/TestWithModuleDebugging.py
 Thu Jun 16 10:22:49 2016
@@ -8,6 +8,7 @@ class TestWithGmodulesDebugInfo(TestBase
 mydir = TestBase.compute_mydir(__file__)
 
 @add_test_categories(["gmodules"])
+@expectedFailureAll(oslist=["macosx"], bugnumber="llvm.org/pr28156")
 def test_specialized_typedef_from_pch(self):
 self.build()
 cwd = os.getcwd()


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