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 <apra...@apple.com> wrote: > > > On Aug 13, 2018, at 11:54 AM, Александр Поляков <polyakov....@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....@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 <apra...@apple.com> wrote: >> >>> >>> >>> > On Aug 11, 2018, at 3:58 AM, Александр Поляков <polyakov....@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
_______________________________________________ lldb-dev mailing list lldb-dev@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev