[tbot] Testcase / Scripting JTAG Debugger
sbabic at denx.de
Fri Dec 7 09:01:33 UTC 2018
On 06/12/18 14:51, Harald Seiler wrote:
> Hi Stefano,
> On Thu, 2018-12-06 at 14:40 +0100, Stefano Babic wrote:
>> there are some ready to use testcases for the BDI debugger ?
> No, unfortunately not ... Yet!
ok, what a pity. I thought tbot uses it to rescue a board after
installing a broken bootloader.
>> The debugger does not allow scripting - anyway, this is something tbot
>> can really help.
> Yes, this is exactly what tbot is supposed to automate for you. I have had
> debugger support in the back of my head for a long time, but haven't yet
> had time to implement anything ...
ok - I have supposed there is something.
My current problem can be solved in other ways, Lukasz mentions one. I
have just to push BDI commands without checking the status of the board,
so I can use even ncat for it.
>> I have an old processor where the Flash is not supported by the debugger
>> fw, but I can rescue the board after bricking issueing a long list of
>> CFI commands. What I would like to have is a "BDI" board and a
>> @tbot.testcase where I can put in a list a set of commands.
>> Is there something to be used ?
> So, technically you would need to implement a new machine for this. Like
> a BdiMachine, that has the ip address configurable. I don't have any
> documentation up for how one would go about doing this I am afraid ...
It is like a new channel for a board. So board has console and can have
a BDI attached to it. Both can be used at the same time to control the
More advanced testcases can use both of them. Board is started from BDI,
a breakpoint is set, command are sent via the console, when break is hit
some BDI commands are sent, then board runs againm and so on.
> I might be able to hack something basic up tomorrow that you can expand
> on as you need.
Do not be in hurry.
> Unfortunately I don't have much experience with bdi so I am not sure
> what would be needed. As far as I understood it, we have two interfaces,
> the telnet console and a gdbserver.
Yes, they work at the same time - but this depends on JTAG debugger.
Other debuggers have a different interface.
For very low-level interaction as what I need now, telnet must be used.
> I guess you need both to work with
> a BDI effectively?
> In that case, we'd have something like:
> with bdi.BdiMachine(lh) as dbg:
> dbg.exec0("run", "something", "on", "telnet", "console")
> dbg.gdb0("run", "something", "on", "gdb", "session")
> Does that make sense?
Yes - this can become more complicate if debugger functionalities
(breakpoints,..) are used. This would require multithreading in tbot
(doing something while waiting that a breakpoint is hit). I do not want
to add so much stuff now, I think the main concern is to provide
functionalities and features present in the old tbot version.
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
More information about the tbot