[Lldb-commits] [PATCH] D14978: [MIPS] Change ARCHFLAG for MIPS
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
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
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
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
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.
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
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
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