[Lldb-commits] [PATCH] D14978: [MIPS] Change ARCHFLAG for MIPS

2015-11-25 Thread Jaydeep Patil via lldb-commits
jaydeep created this revision.
jaydeep added a reviewer: clayborg.
jaydeep added subscribers: lldb-commits, bhushan, mohit.bhakkad, sagar, 
nitesh.jain.
jaydeep set the repository for this revision to rL LLVM.

For MIPS, ARCH is specified without 'm'.

Repository:
  rL LLVM

http://reviews.llvm.org/D14978

Files:
  packages/Python/lldbsuite/test/make/Makefile.rules

Index: packages/Python/lldbsuite/test/make/Makefile.rules
===
--- packages/Python/lldbsuite/test/make/Makefile.rules
+++ packages/Python/lldbsuite/test/make/Makefile.rules
@@ -168,6 +168,9 @@
override ARCH :=
override ARCHFLAG :=
endif
+   ifeq "$(findstring mips,$(ARCH))" "mips"
+   override ARCHFLAG := -
+   endif
 
ifeq "$(SPLIT_DEBUG_SYMBOLS)" "YES"
DSYM = $(EXE).debug


Index: packages/Python/lldbsuite/test/make/Makefile.rules
===
--- packages/Python/lldbsuite/test/make/Makefile.rules
+++ packages/Python/lldbsuite/test/make/Makefile.rules
@@ -168,6 +168,9 @@
 		override ARCH :=
 		override ARCHFLAG :=
 	endif
+	ifeq "$(findstring mips,$(ARCH))" "mips"
+		override ARCHFLAG := -
+	endif
 
 	ifeq "$(SPLIT_DEBUG_SYMBOLS)" "YES"
 		DSYM = $(EXE).debug
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [PATCH] D14985: Add 64/128 bit arm neon register definitions on linux

2015-11-25 Thread Tamas Berghammer via lldb-commits
tberghammer created this revision.
tberghammer added reviewers: labath, omjavaid.
tberghammer added a subscriber: lldb-commits.
Herald added subscribers: rengolin, emaste, aemerson.

Add 64/128 bit arm neon register definitions on linux

http://reviews.llvm.org/D14985

Files:
  source/Core/Scalar.cpp
  source/Plugins/Process/Linux/NativeRegisterContextLinux_arm.cpp
  source/Plugins/Process/Utility/RegisterContextFreeBSD_arm.cpp
  source/Plugins/Process/Utility/RegisterContextLinux_arm.cpp
  source/Plugins/Process/Utility/RegisterContextPOSIX_arm.cpp
  source/Plugins/Process/Utility/RegisterInfos_arm.h
  source/Plugins/Process/Utility/lldb-arm-register-enums.h

Index: source/Plugins/Process/Utility/lldb-arm-register-enums.h
===
--- source/Plugins/Process/Utility/lldb-arm-register-enums.h
+++ source/Plugins/Process/Utility/lldb-arm-register-enums.h
@@ -74,7 +74,55 @@
 fpu_s30_arm,
 fpu_s31_arm,
 fpu_fpscr_arm,
-k_last_fpr_arm = fpu_fpscr_arm,
+fpu_d0_arm,
+fpu_d1_arm,
+fpu_d2_arm,
+fpu_d3_arm,
+fpu_d4_arm,
+fpu_d5_arm,
+fpu_d6_arm,
+fpu_d7_arm,
+fpu_d8_arm,
+fpu_d9_arm,
+fpu_d10_arm,
+fpu_d11_arm,
+fpu_d12_arm,
+fpu_d13_arm,
+fpu_d14_arm,
+fpu_d15_arm,
+fpu_d16_arm,
+fpu_d17_arm,
+fpu_d18_arm,
+fpu_d19_arm,
+fpu_d20_arm,
+fpu_d21_arm,
+fpu_d22_arm,
+fpu_d23_arm,
+fpu_d24_arm,
+fpu_d25_arm,
+fpu_d26_arm,
+fpu_d27_arm,
+fpu_d28_arm,
+fpu_d29_arm,
+fpu_d30_arm,
+fpu_d31_arm,
+fpu_q0_arm,
+fpu_q1_arm,
+fpu_q2_arm,
+fpu_q3_arm,
+fpu_q4_arm,
+fpu_q5_arm,
+fpu_q6_arm,
+fpu_q7_arm,
+fpu_q8_arm,
+fpu_q9_arm,
+fpu_q10_arm,
+fpu_q11_arm,
+fpu_q12_arm,
+fpu_q13_arm,
+fpu_q14_arm,
+fpu_q15_arm,
+k_last_fpr_arm = fpu_q15_arm,
 exc_exception_arm,
 exc_fsr_arm,
 exc_far_arm,
Index: source/Plugins/Process/Utility/RegisterInfos_arm.h
===
--- source/Plugins/Process/Utility/RegisterInfos_arm.h
+++ source/Plugins/Process/Utility/RegisterInfos_arm.h
@@ -33,12 +33,12 @@
 #error FPU_OFFSET must be defined before including this header file
 #endif
 
-#ifndef EXC_OFFSET
-#error EXC_OFFSET_NAME must be defined before including this header file
+#ifndef FPSCR_OFFSET
+#error FPSCR_OFFSET must be defined before including this header file
 #endif
 
-#ifndef DBG_OFFSET
-#error DBG_OFFSET_NAME must be defined before including this header file
+#ifndef EXC_OFFSET
+#error EXC_OFFSET_NAME must be defined before including this header file
 #endif
 
 #ifndef DEFINE_DBG
@@ -99,6 +99,56 @@
 fpu_s31,
 fpu_fpscr,
 
+fpu_d0,
+fpu_d1,
+fpu_d2,
+fpu_d3,
+fpu_d4,
+fpu_d5,
+fpu_d6,
+fpu_d7,
+fpu_d8,
+fpu_d9,
+fpu_d10,
+fpu_d11,
+fpu_d12,
+fpu_d13,
+fpu_d14,
+fpu_d15,
+fpu_d16,
+fpu_d17,
+fpu_d18,
+fpu_d19,
+fpu_d20,
+fpu_d21,
+fpu_d22,
+fpu_d23,
+fpu_d24,
+fpu_d25,
+fpu_d26,
+fpu_d27,
+fpu_d28,
+fpu_d29,
+fpu_d30,
+fpu_d31,
+
+fpu_q0,
+fpu_q1,
+fpu_q2,
+fpu_q3,
+fpu_q4,
+fpu_q5,
+fpu_q6,
+fpu_q7,
+fpu_q8,
+fpu_q9,
+fpu_q10,
+fpu_q11,
+fpu_q12,
+fpu_q13,
+fpu_q14,
+fpu_q15,
+
 exc_exception,
 exc_fsr,
 exc_far,
@@ -174,65 +224,214 @@
 k_num_registers
 };
 
+static uint32_t g_s0_invalidates[]  = { fpu_d0,  fpu_q0, LLDB_INVALID_REGNUM };
+static uint32_t g_s1_invalidates[]  = { fpu_d0,  fpu_q0, LLDB_INVALID_REGNUM };
+static uint32_t g_s2_invalidates[]  = { fpu_d1,  fpu_q0, LLDB_INVALID_REGNUM };
+static uint32_t g_s3_invalidates[]  = { fpu_d1,  fpu_q0, LLDB_INVALID_REGNUM };
+static uint32_t g_s4_invalidates[]  = { fpu_d2,  fpu_q1, LLDB_INVALID_REGNUM };
+static uint32_t g_s5_invalidates[]  = { fpu_d2,  fpu_q1, LLDB_INVALID_REGNUM };
+static uint32_t g_s6_invalidates[]  = { fpu_d3,  fpu_q1, LLDB_INVALID_REGNUM };
+static uint32_t g_s7_invalidates[]  = { fpu_d3,  fpu_q1, LLDB_INVALID_REGNUM };
+static uint32_t g_s8_invalidates[]  = { fpu_d4,  fpu_q2, LLDB_INVALID_REGNUM };
+static uint32_t g_s9_invalidates[]  = { fpu_d4,  fpu_q2, LLDB_INVALID_REGNUM };
+static uint32_t g_s10_invalidates[] = { fpu_d5,  fpu_q2, LLDB_INVALID_REGNUM };
+static uint32_t g_s11_invalidates[] = { fpu_d5,  fpu_q2, LLDB_INVALID_REGNUM };
+static uint32_t g_s12_invalidates[] = { fpu_d6,  fpu_q3, LLDB_INVALID_REGNUM };
+static uint32_t g_s13_invalidates[] = { fpu_d6,  fpu_q3, LLDB_INVALID_REGNUM };
+static uint32_t g_s14_invalidates[] = { fpu_d7,  fpu_q3, LLDB_INVALID_REGNUM };
+static uint32_t g_s15_invalida

Re: [Lldb-commits] [PATCH] D14985: Add 64/128 bit arm neon register definitions on linux

2015-11-25 Thread Pavel Labath via lldb-commits
labath added a comment.

Seems legit, but @omjavaid can probably better verify the relationships among 
these registers. However, I would like to request some tests for this. AFAIK, 
we don't have a lot of (if any) arm-specific register tests. E.g. TestRegisters 
is skipped for non-x86 arches, so we could use this opportunity to add some 
arm-specific tests there.



Comment at: source/Plugins/Process/Utility/RegisterInfos_arm.h:41
@@ -40,3 +42,1 @@
-#ifndef DBG_OFFSET
-#error DBG_OFFSET_NAME must be defined before including this header file
 #endif

Was removing DBG_OFFSET intentional?


http://reviews.llvm.org/D14985



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


[Lldb-commits] [PATCH] D14989: Fix race during process interruption

2015-11-25 Thread Pavel Labath via lldb-commits
labath created this revision.
labath added reviewers: clayborg, jingham.
labath added a subscriber: lldb-commits.

The following situation was occuring in TestAttachResume:
- we did a "continue" from a breakpoint (which involves a private start-stop to 
step over the
  breakpoint)
- after receiving the stop-reply from the step-over, we issue a "detach" (which 
requires a
  process interrupt)
- at this moment, the public state is "running", private state is 
"about-to-be-stopped" (the
  stopped event was broadcast, but it was not received yet)
- StopForDestroyOrDetach (public thread) notes the public state is running, 
sends an interrupt
  request to the private thread
- private thread gets the eBroadcastBitInterrupt (before the eStateStopped 
message), and asks the
  process plugin to stop (via Halt())
- process plugin says it has nothing to do as the process is already stopped
- private thread shrugs and carries on. receives the stop event, restores the 
breakpoint and
  resumes the process.
- after a while, the public thread times out and says it failed to stop the 
process

This patch does the following:
- splits Halt() into two functions, private and public, their usage depends on 
the context
  - public Halt(): sends eBroadcastBitInterrupt to the private thread and waits 
for the Stop
event
  - HaltPrivate(): asks the plugin to stop and makes a note that the halt was 
requested. When the
next stop event comes it sets the interrupt flag on it.
- removes HijackPrivateProcessEvents(), as the only user (old Halt()) has gone 
away
- removes the m_currently_handling_event hack, as the new Halt() does not need 
it
- adds a use_run_lock parameter to public Halt() and WaitForProcessToStop(). 
This was needed
  because RunThreadPlan uses Halt() while holding the run lock and we don't 
want Halt() to take
  it away from him.

http://reviews.llvm.org/D14989

Files:
  include/lldb/Target/Process.h
  
packages/Python/lldbsuite/test/expression_command/timeout/TestCallWithTimeout.py
  
packages/Python/lldbsuite/test/functionalities/attach_resume/TestAttachResume.py
  source/Target/Process.cpp

Index: source/Target/Process.cpp
===
--- source/Target/Process.cpp
+++ source/Target/Process.cpp
@@ -759,7 +759,6 @@
 m_next_event_action_ap(),
 m_public_run_lock (),
 m_private_run_lock (),
-m_currently_handling_event(false),
 m_stop_info_override_callback (NULL),
 m_finalizing (false),
 m_finalize_called (false),
@@ -992,7 +991,8 @@
EventSP *event_sp_ptr,
bool wait_always,
Listener *hijack_listener,
-   Stream *stream)
+   Stream *stream,
+   bool use_run_lock)
 {
 // We can't just wait for a "stopped" event, because the stopped event may have restarted the target.
 // We have to actually check each event, and in the case of a stopped event check the restarted flag
@@ -1019,7 +1019,7 @@
 __FUNCTION__);
 // We need to toggle the run lock as this won't get done in
 // SetPublicState() if the process is hijacked.
-if (hijack_listener)
+if (hijack_listener && use_run_lock)
 m_public_run_lock.SetStopped();
 return state;
 }
@@ -1042,7 +1042,7 @@
 case eStateUnloaded:
 // We need to toggle the run lock as this won't get done in
 // SetPublicState() if the process is hijacked.
-if (hijack_listener)
+if (hijack_listener && use_run_lock)
 m_public_run_lock.SetStopped();
 return state;
 case eStateStopped:
@@ -1052,7 +1052,7 @@
 {
 // We need to toggle the run lock as this won't get done in
 // SetPublicState() if the process is hijacked.
-if (hijack_listener)
+if (hijack_listener && use_run_lock)
 m_public_run_lock.SetStopped();
 return state;
 }
@@ -1308,23 +1308,6 @@
 RestoreBroadcaster();
 }
 
-bool
-Process::HijackPrivateProcessEvents (Listener *listener)
-{
-if (listener != NULL)
-{
-return m_private_state_broadcaster.HijackBroadcaster(listener, eBroadcastBitStateChanged | eBroadcastBitInterrupt);
-}
-else
-return false;
-}
-
-void
-Process::RestorePrivateProcessEvents ()
-{
-m_private_state_broadcaster.RestoreBroadcaster();
-}
-
 StateType
 Process::WaitForStateChangedEvents (const TimeValue *timeout, EventSP &event_sp, Listener *hijack_listener)
 {
@@ -3831,101 +3814,52 @@
 }
 
 Error
-Process::Halt (bool clear_thread_plans)
+Process::Halt (bool clear_thread_plans, bool use_run_lock)
 {
+if (! StateIsRunningState(m_public_state.GetValue()))
+return Error("Process is not running.");
+
 // Don't clear 

[Lldb-commits] [lldb] r254072 - Enable TestMiBreak on Linux

2015-11-25 Thread Pavel Labath via lldb-commits
Author: labath
Date: Wed Nov 25 10:29:04 2015
New Revision: 254072

URL: http://llvm.org/viewvc/llvm-project?rev=254072&view=rev
Log:
Enable TestMiBreak on Linux

test reliably passed last 100 buildbot runs. Enable it and see what happens.

Modified:

lldb/trunk/packages/Python/lldbsuite/test/tools/lldb-mi/breakpoint/TestMiBreak.py

Modified: 
lldb/trunk/packages/Python/lldbsuite/test/tools/lldb-mi/breakpoint/TestMiBreak.py
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/tools/lldb-mi/breakpoint/TestMiBreak.py?rev=254072&r1=254071&r2=254072&view=diff
==
--- 
lldb/trunk/packages/Python/lldbsuite/test/tools/lldb-mi/breakpoint/TestMiBreak.py
 (original)
+++ 
lldb/trunk/packages/Python/lldbsuite/test/tools/lldb-mi/breakpoint/TestMiBreak.py
 Wed Nov 25 10:29:04 2015
@@ -16,7 +16,6 @@ class MiBreakTestCase(lldbmi_testcase.Mi
 
 @skipIfWindows #llvm.org/pr24452: Get lldb-mi tests working on Windows
 @skipIfFreeBSD # llvm.org/pr22411: Failure presumably due to known thread 
races
-@expectedFailureAll("llvm.org/pr24717", oslist=["linux"])
 def test_lldbmi_break_insert_function_pending(self):
 """Test that 'lldb-mi --interpreter' works for pending function 
breakpoints."""
 


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


[Lldb-commits] [lldb] r254078 - Be *stupider* about what constitutes a supported language binding.

2015-11-25 Thread Zachary Turner via lldb-commits
Author: zturner
Date: Wed Nov 25 11:49:47 2015
New Revision: 254078

URL: http://llvm.org/viewvc/llvm-project?rev=254078&view=rev
Log:
Be *stupider* about what constitutes a supported language binding.

We were trying to be super smart and find all the supported language
bindings.  This led to us scanning the directory and treating all
subdirectories as language binding directories.  This makes it
hard to add unrelated code in this folder.

Besides, we only support one at the moment - Python.  And when new
ones are added it will be trivial to just add their names to a list.

So this patch gets stupider about how to look for language binding
subfolders.  Just put them in a list, and use the list.

Modified:
lldb/trunk/scripts/finishSwigWrapperClasses.py
lldb/trunk/scripts/prepare_bindings.py

Modified: lldb/trunk/scripts/finishSwigWrapperClasses.py
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/scripts/finishSwigWrapperClasses.py?rev=254078&r1=254077&r2=254078&view=diff
==
--- lldb/trunk/scripts/finishSwigWrapperClasses.py (original)
+++ lldb/trunk/scripts/finishSwigWrapperClasses.py Wed Nov 25 11:49:47 2015
@@ -253,24 +253,7 @@ def run_post_process_for_each_script_sup
 return (-8, strScriptDirNotFound)
 
 # Look for any script language directories to build for
-listDirs = []
-nDepth = 1
-for strPath, listDirs, listFiles in os.walk(strScriptDir):
-nDepth = nDepth - 1
-if nDepth == 0:
-break
-
-# Skip the directory that contains the interface files.
-listDirs.remove('interface')
-# and the svn directory.
-if '.svn' in listDirs:
-listDirs.remove('.svn')
-
-if gbDbgFlag:
-sys.stdout.write(strScriptLangsFound)
-for dir in listDirs:
-sys.stdout.write(dir)
-print("\n")
+listDirs = ["Python"]
 
 # Iterate script directory find any script language directories
 for scriptLang in listDirs:

Modified: lldb/trunk/scripts/prepare_bindings.py
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/scripts/prepare_bindings.py?rev=254078&r1=254077&r2=254078&view=diff
==
--- lldb/trunk/scripts/prepare_bindings.py (original)
+++ lldb/trunk/scripts/prepare_bindings.py Wed Nov 25 11:49:47 2015
@@ -71,17 +71,7 @@ def prepare_all_bindings(options):
 logging.error("failed to find scripts dir: '%s'", scripts_dir)
 sys.exit(-8)
 
-# Collect list of child directories.  We expect there to be one
-# for each supported script language.
-child_dirs = [f for f in os.listdir(scripts_dir)
-  if os.path.isdir(os.path.join(scripts_dir, f))]
-
-# Remove directories that do not represent script languages.
-for removal_dir in [".svn", "interface", "__pycache__", "sphinx", 
"swig_bot_lib"]:
-if removal_dir in child_dirs:
-child_dirs.remove(removal_dir)
-
-logging.info("found script directories: %s", child_dirs)
+child_dirs = ["Python"]
 
 # Iterate script directory find any script language directories
 for script_lang in child_dirs:


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


Re: [Lldb-commits] [PATCH] D14989: Fix race during process interruption

2015-11-25 Thread Adrian McCarthy via lldb-commits
amccarth added a subscriber: amccarth.
amccarth added a comment.

Nice detective work.



Comment at: include/lldb/Target/Process.h:1372
@@ +1371,3 @@
+/// @param[in] use_run_lock
+/// Whether the release the run lock after the stop.
+///

Did you mean "Whether to release ..."?


http://reviews.llvm.org/D14989



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


[Lldb-commits] LLVM buildmaster will be restarted tonight

2015-11-25 Thread Galina Kistanova via lldb-commits
Hello everyone,

LLVM buildmaster will be updated and restarted after 7 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