[lldb-dev] Failing LIT-based lldb-mi tests

Александр Поляков via lldb-dev lldb-dev at lists.llvm.org
Mon Aug 13 16:19:35 PDT 2018


Yes, I do, I'm able to pass any command to lldb-mi before the breakpoint is
hit. I guess that making exec-run to block the control until the process
stops might be the solution we are looking for.

On Mon, Aug 13, 2018 at 11:18 PM Adrian Prantl <aprantl at apple.com> wrote:

>
>
> On Aug 13, 2018, at 11:54 AM, Александр Поляков <polyakov.alx at gmail.com>
> wrote:
>
> Oops, I made a mistake, I typed break-insert main. Here is the right
> output:
>
> build/bin/lldb-mi a.out
> (gdb)
> -file-exec-and-symbols "a.out"
> ^done
> (gdb)
>
> =library-loaded,id="/home/alexander/workspace/gsoc/a.out",target-name="/home/alexander/workspace/gsoc/a.out",host-name="/home/alexander/workspace/gsoc/a.out",symbols-loaded="0",loaded_addr="-",size="0"
> -exec-run
> ^running
> =thread-group-started,id="i1",pid="6406"
> (gdb)
> =thread-created,id="1",group-id="i1"
> =thread-selected,id="1"
> (gdb)
> =library-loaded,id="/lib/x86_64-linux-gnu/ld-2.23.so
> ",target-name="/lib/x86_64-linux-gnu/ld-2.23.so
> ",host-name="/lib/x86_64-linux-gnu/ld-2.23.so
> ",symbols-loaded="1",symbols-path="/usr/lib/debug/lib/x86_64-linux-gnu/
> ld-2.23.so",loaded_addr="-",size="0"
> (gdb)
>
> =library-loaded,id="[vdso]",target-name="[vdso]",host-name="[vdso]",symbols-loaded="1",symbols-path="",loaded_addr="0x00007ffff7ffa000",size="0"
> (gdb)
>
> =library-loaded,id="/home/alexander/workspace/gsoc/a.out",target-name="/home/alexander/workspace/gsoc/a.out",host-name="/home/alexander/workspace/gsoc/a.out",symbols-loaded="0",loaded_addr="-",size="0"
> (gdb)
> *running,thread-id="all"
> (gdb)
> (gdb)
>
> =library-loaded,id="/lib/x86_64-linux-gnu/libc.so.6",target-name="/lib/x86_64-linux-gnu/libc.so.6",host-name="/lib/x86_64-linux-gnu/libc.so.6",symbols-loaded="1",symbols-path="/usr/lib/debug/lib/x86_64-linux-gnu/
> libc-2.23.so",loaded_addr="-",size="0"
> (gdb)
>
> =library-loaded,id="/lib/x86_64-linux-gnu/libc.so.6",target-name="/lib/x86_64-linux-gnu/libc.so.6",host-name="/lib/x86_64-linux-gnu/libc.so.6",symbols-loaded="1",symbols-path="/usr/lib/debug/lib/x86_64-linux-gnu/
> libc-2.23.so",loaded_addr="-",size="0"
> -break-insert func
>
> ^done,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x0000000000400514",func="func",file="test.c",fullname="/home/alexander/workspace/gsoc/llvm/tools/lldb/lit/tools/lldb-mi/exec/inputs/test.c",line="2",times="0",original-location="func"}
> (gdb)
>
> =breakpoint-modified,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x0000000000400514",func="func",file="test.c",fullname="/home/alexander/workspace/gsoc/llvm/tools/lldb/lit/tools/lldb-mi/exec/inputs/test.c",line="2",times="0",original-location="func"}
> (gdb)
>
> =breakpoint-modified,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x0000000000400514",func="func",file="test.c",fullname="/home/alexander/workspace/gsoc/llvm/tools/lldb/lit/tools/lldb-mi/exec/inputs/test.c",line="2",times="0",original-location="func"}
> (gdb)
> -exec-next
> ^error,msg="Resume timed out."
> (gdb)
> (gdb)
>
> *stopped,reason="breakpoint-hit",disp="del",bkptno="1",frame={level="0",addr="0x0000000000400514",func="func",args=[],file="test.c",fullname="/home/alexander/workspace/gsoc/llvm/tools/lldb/lit/tools/lldb-mi/exec/inputs/test.c",line="2"},thread-id="1",stopped-threads="all"
>
>
> Do you get control back before the breakpoint is hit? If yes, should
> -exec-run block until the process stops (in synchronous mode)?
>
>
> (gdb)
> (gdb)
> *running,thread-id="all"
> (gdb)
> (gdb)
>
> *stopped,reason="breakpoint-hit",disp="del",bkptno="1",frame={level="0",addr="0x0000000000400514",func="func",args=[],file="test.c",fullname="/home/alexander/workspace/gsoc/llvm/tools/lldb/lit/tools/lldb-mi/exec/inputs/test.c",line="2"},thread-id="1",stopped-threads="all"
> (gdb)
>
> On Mon, Aug 13, 2018 at 9:40 PM Александр Поляков <polyakov.alx at gmail.com>
> wrote:
>
>> Sure, this is the log with the typed commands:
>>
>> build/bin/lldb-mi a.out
>> (gdb)
>> -file-exec-and-symbols "a.out"
>> ^done
>> (gdb)
>>
>> =library-loaded,id="/home/alexander/workspace/gsoc/a.out",target-name="/home/alexander/workspace/gsoc/a.out",host-name="/home/alexander/workspace/gsoc/a.out",symbols-loaded="0",loaded_addr="-",size="0"
>> -exec-run
>> ^running
>> =thread-group-started,id="i1",pid="4410"
>> (gdb)
>> =thread-created,id="1",group-id="i1"
>> =thread-selected,id="1"
>> (gdb)
>> =library-loaded,id="/lib/x86_64-linux-gnu/ld-2.23.so
>> ",target-name="/lib/x86_64-linux-gnu/ld-2.23.so
>> ",host-name="/lib/x86_64-linux-gnu/ld-2.23.so
>> ",symbols-loaded="1",symbols-path="/usr/lib/debug/lib/x86_64-linux-gnu/
>> ld-2.23.so",loaded_addr="-",size="0"
>> (gdb)
>>
>> =library-loaded,id="[vdso]",target-name="[vdso]",host-name="[vdso]",symbols-loaded="1",symbols-path="",loaded_addr="0x00007ffff7ffa000",size="0"
>> (gdb)
>>
>> =library-loaded,id="/home/alexander/workspace/gsoc/a.out",target-name="/home/alexander/workspace/gsoc/a.out",host-name="/home/alexander/workspace/gsoc/a.out",symbols-loaded="0",loaded_addr="-",size="0"
>> (gdb)
>> *running,thread-id="all"
>> (gdb)
>> (gdb)
>>
>> =library-loaded,id="/lib/x86_64-linux-gnu/libc.so.6",target-name="/lib/x86_64-linux-gnu/libc.so.6",host-name="/lib/x86_64-linux-gnu/libc.so.6",symbols-loaded="1",symbols-path="/usr/lib/debug/lib/x86_64-linux-gnu/
>> libc-2.23.so",loaded_addr="-",size="0"
>> (gdb)
>>
>> =library-loaded,id="/lib/x86_64-linux-gnu/libc.so.6",target-name="/lib/x86_64-linux-gnu/libc.so.6",host-name="/lib/x86_64-linux-gnu/libc.so.6",symbols-loaded="1",symbols-path="/usr/lib/debug/lib/x86_64-linux-gnu/
>> libc-2.23.so",loaded_addr="-",size="0"
>> -break-insert main
>>
>> ^done,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x000000000040052f",func="main",file="test.c",fullname="/home/alexander/workspace/gsoc/llvm/tools/lldb/lit/tools/lldb-mi/exec/inputs/test.c",line="7",times="0",original-location="main"}
>> (gdb)
>>
>> =breakpoint-modified,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x000000000040052f",func="main",file="test.c",fullname="/home/alexander/workspace/gsoc/llvm/tools/lldb/lit/tools/lldb-mi/exec/inputs/test.c",line="7",times="0",original-location="main"}
>> (gdb)
>>
>> =breakpoint-modified,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x000000000040052f",func="main",file="test.c",fullname="/home/alexander/workspace/gsoc/llvm/tools/lldb/lit/tools/lldb-mi/exec/inputs/test.c",line="7",times="0",original-location="main"}
>> (gdb)
>> -exec-next
>> ^error,msg="Resume timed out."
>> (gdb)
>> (gdb)
>> =thread-exited,id="1",group-id="i1"
>> =thread-group-exited,id="i1",exit-code="0"
>> *stopped,reason="exited-normally"
>> (gdb)
>>
>> No one of the commands isn't a blocking one, but I think that -exec-run
>> should be blocking.
>>
>> On Mon, Aug 13, 2018 at 8:10 PM Adrian Prantl <aprantl at apple.com> wrote:
>>
>>>
>>>
>>> > On Aug 11, 2018, at 3:58 AM, Александр Поляков <polyakov.alx at gmail.com>
>>> wrote:
>>> >
>>> > I reproduced the test you suggested and got following output:
>>> >
>>> > build/bin/lldb-mi --synchronous a.out <
>>> llvm/tools/lldb/lit/tools/lldb-mi/exec/lldb-mi-fail.test
>>> > (gdb)
>>> > -file-exec-and-symbols "a.out"
>>> > ^done
>>> > (gdb)
>>> > ^done
>>> > (gdb)
>>> >
>>> =library-loaded,id="/home/alexander/workspace/gsoc/a.out",target-name="/home/alexander/workspace/gsoc/a.out",host-name="/home/alexander/workspace/gsoc/a.out",symbols-loaded="0",loaded_addr="-",size="0"
>>> > ^done
>>> > (gdb)
>>> > ^done
>>> > (gdb)
>>> > ^done
>>> > (gdb)
>>> > ^done
>>> > (gdb)
>>> > ^done
>>> > (gdb)
>>> > ^done
>>> > (gdb)
>>> > ^done
>>> > (gdb)
>>> >
>>> ^done,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x000000000000000f",func="??",file="??",fullname="??/??",line="0",times="0",original-location="f"}
>>> > (gdb)
>>> >
>>> =breakpoint-modified,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x000000000000000f",func="??",file="??",fullname="??/??",line="0",times="0",original-location="f"}
>>> > (gdb)
>>> > ^done
>>> > (gdb)
>>> > ^running
>>> > =thread-group-started,id="i1",pid="5075"
>>> > (gdb)
>>> > =thread-created,id="1",group-id="i1"
>>> > =thread-selected,id="1"
>>> > (gdb)
>>> > =library-loaded,id="/lib/x86_64-linux-gnu/ld-2.23.so
>>> ",target-name="/lib/x86_64-linux-gnu/ld-2.23.so
>>> ",host-name="/lib/x86_64-linux-gnu/ld-2.23.so
>>> ",symbols-loaded="1",symbols-path="/usr/lib/debug/lib/x86_64-linux-gnu/
>>> ld-2.23.so",loaded_addr="-",size="0"
>>> > (gdb)
>>> >
>>> =library-loaded,id="[vdso]",target-name="[vdso]",host-name="[vdso]",symbols-loaded="1",symbols-path="",loaded_addr="0x00007ffff7ffa000",size="0"
>>> > (gdb)
>>> >
>>> =library-loaded,id="/home/alexander/workspace/gsoc/a.out",target-name="/home/alexander/workspace/gsoc/a.out",host-name="/home/alexander/workspace/gsoc/a.out",symbols-loaded="0",loaded_addr="-",size="0"
>>> > (gdb)
>>> >
>>> =library-loaded,id="/lib/x86_64-linux-gnu/libc.so.6",target-name="/lib/x86_64-linux-gnu/libc.so.6",host-name="/lib/x86_64-linux-gnu/libc.so.6",symbols-loaded="1",symbols-path="/usr/lib/debug/lib/x86_64-linux-gnu/
>>> libc-2.23.so",loaded_addr="-",size="0"
>>> > (gdb)
>>> >
>>> =library-loaded,id="/lib/x86_64-linux-gnu/libc.so.6",target-name="/lib/x86_64-linux-gnu/libc.so.6",host-name="/lib/x86_64-linux-gnu/libc.so.6",symbols-loaded="1",symbols-path="/usr/lib/debug/lib/x86_64-linux-gnu/
>>> libc-2.23.so",loaded_addr="-",size="0"
>>> > (gdb)
>>> > =thread-exited,id="1",group-id="i1"
>>> > =thread-group-exited,id="i1",exit-code="0"
>>> > *stopped,reason="exited-normally"
>>> > (gdb)
>>> > ^done
>>> > (gdb)
>>> > ^done
>>> > (gdb)
>>> > ^error,msg="Resume timed out."
>>> > (gdb)
>>> > ^done
>>> > (gdb)
>>> >
>>> > As a command that needs a breakpoint to be hit I chose the -exec-next
>>> --thread 1. It's the same error which is seen on the bots.
>>>
>>> Can you help me understand the order in which events happened in that
>>> log? I don't see the -exec-next command in the log. If you type in the
>>> commands manually, does it become obvious which ones are blocking and which
>>> ones aren't (but should be)?
>>>
>>> -- adrian
>>
>>
>>
>> --
>> Alexander
>>
>
>
> --
> Alexander
>
>
>

-- 
Alexander
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20180814/f677b40c/attachment-0001.html>


More information about the lldb-dev mailing list