From: "Alex Bennée" <alex.bennee@linaro.org>
To: casmac <1482995675@qq.com>
Cc: "Philippe Mathieu-Daudé" <f4bug@amsat.org>, qemu-devel@nongnu.org
Subject: Re: GDB get wrong debug infos on TI DSP architecture extension
Date: Thu, 28 May 2020 09:34:19 +0100 [thread overview]
Message-ID: <87v9kg4fw4.fsf@linaro.org> (raw)
In-Reply-To: <tencent_B0E453026AE8377459F3162D9F7D5ECE6907@qq.com>
casmac <1482995675@qq.com> writes:
> Hi,
> Thank you for forwarding my question to developers and sharing the C6x implementation.
> Perhaps I should follow up with another problem I encountered. The senerio is the emulator keeps running eventhough the program it emulates has already exited. And it keeps retrieving instructions which are all zero "instruction"(0x00000000).
>
> It looks to me that in function cpu_exec(CPUState *cpu), the following loop never terminate:
> while (!cpu_handle_exception(cpu, &ret)) {
> TranslationBlock *last_tb = NULL;
> int tb_exit = 0;
> while (!cpu_handle_interrupt(cpu, &last_tb)) { ... }
> Is it because cpu->exit_request remains 0 ?
>
> At what point should we make cpu->exit_request=1 ?
cpu->exit_request is set for asynchronus conditions (e.g. timer IRQs or
IO events). A number of helpers will "kick" the cpu by calling
cpu_exit().
> Thanks again!!
>
>
> regards
> xiaolei
>
>
>
> ------------------ Original ------------------
> From: "Philippe Mathieu-Daudé"<f4bug@amsat.org>;
> Date: Wed, May 27, 2020 03:19 PM
> To: "casmac"<1482995675@qq.com>;"qemu-devel"<qemu-devel@nongnu.org>;
> Cc: "Taylor Simpson"<tsimpson@quicinc.com>;"Alex Bennée"<alex.bennee@linaro.org>;"Luc Michel"<luc.michel@greensocs.com>;
> Subject: Re: GDB get wrong debug infos on TI DSP architecture extension
>
>
>
> Hi Xiaolei,
>
> Cc'ing more developers who might answer you.
>
> On 5/27/20 8:48 AM, casmac wrote:
> > Hi all,
> > I am working on a TI DSP architecture extension for QEMU.
>
> FYI you can find the TI TMS320C6x target implemented here:
> https://github.com/philmd/qemu/releases/tag/target-c6x-2.4
>
> I started rebasing it to QEMU 4.2 but then got distracted.
>
> > Now, we are
> > adding GDB debugging features.
> > We have done the following, but not sure we are on the right track :
> > - add a xml description file in gdb-xml, without understanding the
> > purpose of the file, why some architectures don't provide such xml file?
> > - add ***_cpu_gdb_read_register(), ***_cpu_gdb_write_register();
> > - added dsp_cpu_get_phys_page_attrs_debug(), but uncertain about
> > what to return
> > dsp_cpu_get_phys_page_attrs_debug(CPUState *cs, vaddr addr,
> > MemTxAttrs *attrs)
> > {
> > return addr & TARGET_PAGE_MASK;
> > }
> >
> > We run QEMU with the these arguments
> > qemu-system-dsp ... -kernel filename.out -S -s
> >
> > It turns out that gdb reads incorrect register values, and complains
> > : "warning: Target-supplied registers are not supported by the current
> > architecture".
> >
> > Something is missing here, or we do it in a wrong way. Any advise
> > would be helpful to us.
> >
> > Thanks.
> >
> > xiaolei
> >
> > ----- ti_dsp.xml -----
> >
> > <?xml version="1.0"?>
> > <!DOCTYPE feature SYSTEM "gdb-target.dtd">
> > <feature name="org.gnu.gdb.tic3x.core">
> > <reg name="r0" bitsize="32"></reg>
> > <reg name="r1" bitsize="32"/>
> > <reg name="r2" bitsize="32"></reg>
> > <reg name="r3" bitsize="32"/>
> > <reg name="r4" bitsize="32"/>
> > <reg name="r5" bitsize="32"/>
> > <reg name="r6" bitsize="32"/>
> > <reg name="r7" bitsize="32"/>
> > <reg name="ar0" bitsize="32"/>
> > <reg name="ar1" bitsize="32"/>
> > <reg name="ar2" bitsize="32"/>
> > <reg name="ar3" bitsize="32"/>
> > <reg name="ar4" bitsize="32"/>
> > <reg name="ar5" bitsize="32"/>
> > <reg name="ar6" bitsize="32"/>
> > <reg name="ar7" bitsize="32"/>
> > <reg name="dp" bitsize="32"/>
> > <reg name="ir0" bitsize="32"/>
> > <reg name="ir1" bitsize="32"/>
> > <reg name="bk" bitsize="32"/>
> > <reg name="sp" bitsize="32" type="data_ptr"/>
> > <reg name="st" bitsize="32"></reg>
> > <reg name="ie" bitsize="32"/>
> > <reg name="if" bitsize="32"/>
> > <reg name="iof" bitsize="32"/>
> > <reg name="rs" bitsize="32"/>
> > <reg name="re" bitsize="32"/>
> > <reg name="rc" bitsize="32"/>
> > <reg name="pc" bitsize="32" type="data_ptr"/>
> > <reg name="clk" bitsize="32"/>
> > </feature>
> >
--
Alex Bennée
next prev parent reply other threads:[~2020-05-28 8:35 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-27 6:48 GDB get wrong debug infos on TI DSP architecture extension casmac
2020-05-27 7:19 ` Philippe Mathieu-Daudé
2020-05-27 21:41 ` Taylor Simpson
2020-05-29 7:27 ` casmac
2020-05-29 15:19 ` Taylor Simpson
2020-05-28 1:16 ` casmac
2020-05-28 8:34 ` Alex Bennée [this message]
2020-05-28 9:49 ` =?gb18030?B?u9i4tKO6IEdEQiBnZXQgd3JvbmcgZGVidWcgaW5mb3Mgb24gVEkgRFNQIGFyY2hpdGVjdHVyZSBleHRlbnNpb24=?= =?gb18030?B?eGlhb2xlaQ==?=
2020-05-27 9:11 ` GDB get wrong debug infos on TI DSP architecture extension Alex Bennée
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87v9kg4fw4.fsf@linaro.org \
--to=alex.bennee@linaro.org \
--cc=1482995675@qq.com \
--cc=f4bug@amsat.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).