On Mon, Mar 30, 2020 at 12:47 PM Alex Bennée <alex.ben...@linaro.org> wrote:
> > Lirong Yuan <yua...@google.com> writes: > > > On Sat, Mar 21, 2020 at 6:56 AM Alex Bennée <alex.ben...@linaro.org> > wrote: > > > >> > >> Lirong Yuan <yua...@google.com> writes: > >> > >> > On Fri, Mar 20, 2020 at 2:17 AM Alex Bennée <alex.ben...@linaro.org> > >> wrote: > >> <snip> > >> >> > >> >> Sorry I missed this on my radar. There was a minor re-factor of > gdbstub > >> >> that was just merged which will mean this patch needs a re-base to > use > >> >> g_string_* functions to expand stings. > >> >> > >> >> Also we have some simple gdbstub tests now - could we come up with a > >> >> multiarch gdbstub test to verify this is working properly? > >> >> > >> <snip> > >> > For sure, I will re-base this patch to use g_string_* functions. > >> > > >> > Currently we are using qemu aarch64. I am not sure how to do this yet, > >> but > >> > I could try to add something to > >> > https://github.com/qemu/qemu/tree/master/tests/tcg/aarch64/gdbstub > >> > >> If the auxv support is appropriate to all linux-user targets you can > >> plumb it into the multiarch tests - you can even use the existing > >> binaries. > >> > >> So you need: > >> > >> - a stanza in the makefiles to launch the test (see > >> tests/tcg/aarch64/Makefile.target) > >> > >> - a .py test script that manipulates gdbstub to check things are > working > >> > >> So something like: > >> > >> .PHONY: gdbstub-foo-binary > >> run-gdbstub-foo-binary: foo-binary > >> $(call run-test, $@, $(GDB_SCRIPT) \ > >> --gdb $(HAVE_GDB_BIN) \ > >> --qemu $(QEMU) --qargs "$(QEMU_OPTS)" \ > >> --bin $< --test $(MULTIARCH_SRC)/gdbstub/test-foo.py, \ > >> "basic gdbstub FOO support") > >> > >> > >> > > >> > Does this sound good? > >> > >> Hope that helps. > >> > >> > > >> > Thanks! > >> > Lirong > >> > >> > >> -- > >> Alex Bennée > >> > > > > Hi Alex, > > > > Thanks for the instructions, very helpful! > > > > I rebased this patch to use g_string_* functions, and the link to > patchwork > > is: > > http://patchwork.ozlabs.org/patch/1264125/ > > Could you help take another look? > > > > Regarding testing, I looked at some instructions for running tests, e.g. > > https://github.com/qemu/qemu/blob/master/docs/devel/testing.rst > > https://wiki.qemu.org/Testing > > However I still could not get the tests for aarch64 to run. Do you know > how > > to run the aarch64 or multi-arch tests? > > The aarch64 ones run with "make run-tcg-tests-aarch64-linux-user" add > V=1 to see the details. > > > Also there aren't any existing gdb stub tests that try to read > > uninterpreted bytes from the target’s special data area identified by a > > keyword: > > > https://sourceware.org/gdb/current/onlinedocs/gdb/General-Query-Packets.html#qXfer-auxiliary-vector-read > > I looked at some other gdb stub tests, but they did not seem to send any > > queries: > > https://github.com/qemu/qemu/tree/master/tests/tcg/aarch64/gdbstub > > So I am not sure how to set up one for "Xfer:auxv:read:" packets... > > Are there plans to add more tests for other packets like > > "Xfer:features:read:"? > > I'd be happy to add a test if there is an example of how to do it. :) > > What would you do from a normal gdb command line. At the very least you > run the same command with gdb.execute(), e.g.: > > gdb.execute("set confirm off") > > is the same as typing > > set confirm off > > at the gdb command prompt. > > > > > Thanks, > > Lirong > > > -- > Alex Bennée > Hey Alex, I tried to run the test but they were skipped. Do you know if there's any other flag that needs to be set? $ make run-tcg-tests-aarch64-linux-user make[1]: Entering directory '/usr/local/google/home/yuanzi/qemu/slirp' make[1]: Nothing to be done for 'all'. make[1]: Leaving directory '/usr/local/google/home/yuanzi/qemu/slirp' BUILD TCG tests for aarch64-linux-user BUILD aarch64-linux-user guest-tests SKIPPED RUN TCG tests for aarch64-linux-user RUN tests for aarch64-linux-user SKIPPED I don't think any command needs to be run. It should just send the query automatically. Could we assume that it will work the same in the test?