[Lldb-commits] [lldb] r180829 - Make "process handle -n true -s false" actually notifies of the signal.

Malea, Daniel daniel.malea at intel.com
Wed May 1 09:03:15 PDT 2013


Hi Jim, this commit seems to cause some hangs in TestTypeCompletion.py,
can you take a look (or revert) please. I can provide

http://lab.llvm.org:8011/builders/lldb-x86_64-debian-clang/builds/2754

#0  pthread_cond_wait@@GLIBC_2.3.2 () at
../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007f8801b2d8f7 in lldb_private::Condition::Wait (this=0x1b52b80,
mutex=..., abstime=0x0, timed_out=0x7fff766e985e) at
../tools/lldb/source/Host/common/Condition.cpp:92
#2  0x00007f8801b2c8a5 in
lldb_private::Predicate<bool>::WaitForValueEqualTo (this=0x1b52b50,
value=true, abstime=0x0, timed_out=0x7fff766e985e) at
../tools/lldb/include/lldb/Host/Predicate.h:338
#3  0x00007f8801b66e82 in lldb_private::Listener::WaitForEventsInternal
(this=0x1b52ab8, timeout=0x0, broadcaster=0x1cabd48,
broadcaster_names=0x0, num_broadcaster_names=0, event_type_mask=3,
event_sp=...) at ../tools/lldb/source/Core/Listener.cpp:433
#4  0x00007f8801b66f74 in
lldb_private::Listener::WaitForEventForBroadcasterWithType
(this=0x1b52ab8, timeout=0x0, broadcaster=0x1cabd48, event_type_mask=3,
event_sp=...) at ../tools/lldb/source/Core/Listener.cpp:464
#5  0x00007f8801d152fd in lldb_private::Process::WaitForStateChangedEvents
(this=0x1cabd10, timeout=0x0, event_sp=...) at
../tools/lldb/source/Target/Process.cpp:1319
#6  0x00007f8801d1503b in lldb_private::Process::WaitForProcessToStop
(this=0x1cabd10, timeout=0x0, event_sp_ptr=0x0) at
../tools/lldb/source/Target/Process.cpp:1224
#7  0x00007f8801ecbce5 in
CommandObjectThreadStepWithTypeAndScope::DoExecute (this=0x1b892c0,
command=..., result=...) at
../tools/lldb/source/Commands/CommandObjectThread.cpp:542
#8  0x00007f8801c57be9 in lldb_private::CommandObjectParsed::Execute
(this=0x1b892c0, args_string=0x7f88003cb4d8 "", result=...) at
../tools/lldb/source/Interpreter/CommandObject.cpp:969
#9  0x00007f8801c4bea2 in lldb_private::CommandInterpreter::HandleCommand
(this=0x1b52cf0, command_line=0x7f8807d0fd14 "next",
lazy_add_to_history=lldb_private::eLazyBoolNo, result=...,
override_context=0x0, repeat_on_empty_command=true,
no_context_switching=false)
    at ../tools/lldb/source/Interpreter/CommandInterpreter.cpp:1813
#10 0x00007f8801a75a7b in lldb::SBCommandInterpreter::HandleCommand
(this=0x1c338b0, command_line=0x7f8807d0fd14 "next", result=...,
add_to_history=false) at
../tools/lldb/source/API/SBCommandInterpreter.cpp:122
#11 0x00007f88019ee5dd in _wrap_SBCommandInterpreter_HandleCommand__SWIG_1
(args=(<SBCommandInterpreter(this=<SwigPyObject at remote 0x1c5d3c0>) at
remote 0x1c53050>, 'next', <SBCommandReturnObject(this=<SwigPyObject at
remote 0x1c5d3f0>) at remote 0x1c53090>))
    at tools/lldb/scripts/LLDBWrapPython.cpp:9180
#12 0x00007f88019ee7ce in _wrap_SBCommandInterpreter_HandleCommand
(self=0x0, args=(<SBCommandInterpreter(this=<SwigPyObject at remote
0x1c5d3c0>) at remote 0x1c53050>, 'next',
<SBCommandReturnObject(this=<SwigPyObject at remote 0x1c5d3f0>) at remote
0x1c53090>))
    at tools/lldb/scripts/LLDBWrapPython.cpp:9215
#13 0x0000000000463ea7 in ext_do_call (nk=29085856, na=<optimized out>,
flags=<optimized out>, pp_stack=0x7fff766ea090, func=<built-in function
SBCommandInterpreter_HandleCommand>) at ../Python/ceval.c:4331
#14 PyEval_EvalFrameEx (f=f at entry=
    Frame 0x1c92540, for file
/home/daniel/dev/llvm/build/lib/python2.7/site-packages/lldb/__init__.py,
line 1633, in HandleCommand (self=<SBCommandInterpreter(this=<SwigPyObject
at remote 0x1c5d3c0>) at remote 0x1c53050>, args=('next',
<SBCommandReturnObject(this=<SwigPyObject at remote 0x1c5d3f0>) at remote
0x1c53090>)), throwflag=throwflag at entry=0) at ../Python/ceval.c:2705
#15 0x0000000000467209 in PyEval_EvalCodeEx (co=0x1a5a930,
globals=<optimized out>, locals=locals at entry=0x0, args=<optimized out>,
argcount=argcount at entry=3, kws=0x1c924c8, kwcount=0, defs=0x0, defcount=0,
closure=closure at entry=0x0) at ../Python/ceval.c:3253
#16 0x000000000045ff77 in fast_function (nk=<optimized out>, na=3,
n=<optimized out>, pp_stack=0x7fff766ea320, func=<function at remote
0x1973c80>) at ../Python/ceval.c:4117
#17 call_function (oparg=<optimized out>, pp_stack=0x7fff766ea320) at
../Python/ceval.c:4042
#18 PyEval_EvalFrameEx (f=f at entry=
    Frame 0x1c922f0, for file
/home/daniel/dev/llvm/tools/lldb/test/lldbtest.py, line 1354, in runCmd
(self=<TypeCompletionTestCase(subprocesses=[], doTearDownCleanups=False,
lldbOption='--no-lldbinit', hooks=[<function at remote 0x1c55b18>],
__failed__=False, dbg=<SBDebugger(this=<SwigPyObject at remote 0x1b91fc0>)
at remote 0x1af4a90>, _cleanups=[], session=<StringIO(softspace=0,
buflist=['\nos command: [[\'/bin/sh\', \'-c\', \'make clean; make
MAKE_DSYM=NO ARCH=x86_64 CC=clang\']]\nwith pid: 3076\nstdout: rm -rf
"a.out" ""  main.o main.d  \nclang++ -g -O0 -m64     -c -o main.o
main.cpp\nclang++  main.o -g -O0 -m64     -o "a.out"\n\nstderr: \nretcode:
0\n\n', '\n', "runCmd: file a.out\noutput: Current executable set to
'a.out' (x86_64).\n\n", '\n', 'runCmd: breakpoint set -f "main.cpp" -l
37\noutput: Breakpoint 1: 2 locations.\n\n', '\n', 'Expecting pattern:
^Breakpoint (?P<bpno>[0-9]+): (?P<num_locations>[0-9]+)
locations\\.$\nMatched\n', '\n', "runCmd: run\noutput: Process 3102
launched: '/home/daniel/dev/llv...(truncated),
throwflag=throwflag at entry=0) at ../Python/ceval.c:2666
#19 0x0000000000467209 in PyEval_EvalCodeEx (co=0x1b900b0,
globals=<optimized out>, locals=locals at entry=0x0, args=<optimized out>,
argcount=argcount at entry=2, kws=0x1c913c8, kwcount=0, defs=0x19aae78,
defcount=3, closure=closure at entry=0x0) at ../Python/ceval.c:3253
#20 0x000000000045ff77 in fast_function (nk=<optimized out>, na=2,
n=<optimized out>, pp_stack=0x7fff766ea5b0, func=<function at remote
0x1b94aa0>) at ../Python/ceval.c:4117
#21 call_function (oparg=<optimized out>, pp_stack=0x7fff766ea5b0) at
../Python/ceval.c:4042
#22 PyEval_EvalFrameEx (f=f at entry=
    Frame 0x1c91200, for file
/home/daniel/dev/llvm/tools/lldb/test/functionalities/type_completion/TestT
ypeCompletion.py, line 65, in type_completion_commands
(self=<TypeCompletionTestCase(subprocesses=[], doTearDownCleanups=False,
lldbOption='--no-lldbinit', hooks=[<function at remote 0x1c55b18>],
__failed__=False, dbg=<SBDebugger(this=<SwigPyObject at remote 0x1b91fc0>)
at remote 0x1af4a90>, _cleanups=[], session=<StringIO(softspace=0,
buflist=['\nos command: [[\'/bin/sh\', \'-c\', \'make clean; make
MAKE_DSYM=NO ARCH=x86_64 CC=clang\']]\nwith pid: 3076\nstdout: rm -rf
"a.out" ""  main.o main.d  \nclang++ -g -O0 -m64     -c -o main.o
main.cpp\nclang++  main.o -g -O0 -m64     -o "a.out"\n\nstderr: \nretcode:
0\n\n', '\n', "runCmd: file a.out\noutput: Current executable set to
'a.out' (x86_64).\n\n", '\n', 'runCmd: breakpoint set -f "main.cpp" -l
37\noutput: Breakpoint 1: 2 locations.\n\n', '\n', 'Expecting pattern:
^Breakpoint (?P<bpno>[0-9]+): (?P<num_locations>[0-9]+)
locations\\.$\nMatched\n', '\n', "runCmd:...(truncated),
throwflag=throwflag at entry=0) at ../Python/ceval.c:2666
#23 0x0000000000467209 in PyEval_EvalCodeEx (co=0x1af2e30,
globals=<optimized out>, locals=locals at entry=0x0, args=<optimized out>,
argcount=argcount at entry=1, kws=0x0, kwcount=0, defs=0x0, defcount=0,
closure=closure at entry=0x0) at ../Python/ceval.c:3253
#24 0x000000000045ff77 in fast_function (nk=<optimized out>, na=1,
n=<optimized out>, pp_stack=0x7fff766ea840, func=<function at remote
0x1ba1b18>) at ../Python/ceval.c:4117
#25 call_function (oparg=<optimized out>, pp_stack=0x7fff766ea840) at
../Python/ceval.c:4042




Thanks,
Dan

On 2013-04-30 7:42 PM, "Jim Ingham" <jingham at apple.com> wrote:

>Author: jingham
>Date: Tue Apr 30 18:42:24 2013
>New Revision: 180829
>
>URL: http://llvm.org/viewvc/llvm-project?rev=180829&view=rev
>Log:
>Make "process handle -n true -s false" actually notifies of the signal.
>
>rdar://problem/12020085
>
>Modified:
>    lldb/trunk/include/lldb/Target/ThreadPlanBase.h
>    lldb/trunk/source/Target/ThreadPlanBase.cpp
>
>Modified: lldb/trunk/include/lldb/Target/ThreadPlanBase.h
>URL: 
>http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Target/ThreadP
>lanBase.h?rev=180829&r1=180828&r2=180829&view=diff
>==========================================================================
>====
>--- lldb/trunk/include/lldb/Target/ThreadPlanBase.h (original)
>+++ lldb/trunk/include/lldb/Target/ThreadPlanBase.h Tue Apr 30 18:42:24
>2013
>@@ -37,6 +37,7 @@ public:
>     virtual bool ValidatePlan (Stream *error);
>     virtual bool PlanExplainsStop (Event *event_ptr);
>     virtual bool ShouldStop (Event *event_ptr);
>+    virtual Vote ShouldReportStop (Event *event_ptr);
>     virtual bool StopOthers ();
>     virtual lldb::StateType GetPlanRunState ();
>     virtual bool WillStop ();
>
>Modified: lldb/trunk/source/Target/ThreadPlanBase.cpp
>URL: 
>http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Target/ThreadPlanBas
>e.cpp?rev=180829&r1=180828&r2=180829&view=diff
>==========================================================================
>====
>--- lldb/trunk/source/Target/ThreadPlanBase.cpp (original)
>+++ lldb/trunk/source/Target/ThreadPlanBase.cpp Tue Apr 30 18:42:24 2013
>@@ -78,6 +78,22 @@ ThreadPlanBase::PlanExplainsStop (Event
>         return true;
> }
> 
>+Vote
>+ThreadPlanBase::ShouldReportStop(Event *event_ptr)
>+{
>+    StopInfoSP stop_info_sp = GetPrivateStopReason();
>+    if (stop_info_sp)
>+    {
>+        bool should_notify = stop_info_sp->ShouldNotify(event_ptr);
>+        if (should_notify)
>+            return eVoteYes;
>+        else
>+            return eVoteNoOpinion;
>+    }
>+    else
>+        return eVoteNoOpinion;
>+}
>+
> bool
> ThreadPlanBase::ShouldStop (Event *event_ptr)
> {
>
>
>_______________________________________________
>lldb-commits mailing list
>lldb-commits at cs.uiuc.edu
>http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits





More information about the lldb-commits mailing list