gdb.write при запуске gdb continue (модульное тестирование с помощью arm-gdb-python)

Я создаю скрипт автоматического модульного тестирования на python и хотел бы узнать статус скрипта в окне GDB.
Я понимаю, что мы можем использовать gdb.write() написать в stdout ГДБ. Но это происходит только тогда, когда скрипт Python выполняется без запуска GDB (запустив gdb.execute("continue")).
Пример сценария

import threading
import time

class MyThread(threading.Thread):
    def run(self):
        gdb.write("{} started!".format(self.getName()))
        time.sleep(1)
        gdb.write("{} finished!".format(self.getName()))

if __name__ == '__main__':
    for x in range(4):
        mythread = MyThread(name = "Thread-{}".format(x + 1))
        mythread.start()
        time.sleep(.9)  

Это напечатает

(gdb) source quick_test.py 
Thread-1 started!
Thread-2 started!
Thread-1 finished!
Thread-3 started!
Thread-2 finished!
Thread-4 started!
Thread-3 finished!

Но если я сделаю

def main():
    ser_thread = MyThread_serial(name = "Thread-serial")
    ser_thread.start()

    DebugPrintingBreakpoint("../Src/vmu.c:2751")
    gdb.execute("continue")

if __name__ == "__main__":
    print("Serial gdb testing ")
    main()

Выход на терминал GDB является

Serial gdb testing Breakpoint 1 at 0x804c610: file ../Src/vmu.c, line 2751.
Note: automatically using hardware breakpoints for read-only addresses.

И после этого никто другой stdout виден.
Но как только я достигну точки останова и получу gdb stdin назад я вижу gdb.write выходные данные, как они были в буфере (я должен что-то набрать, чтобы увидеть стандартный вывод).

Вопрос
Как посмотреть stdouts во время работы GDB.

0 ответов

Другие вопросы по тегам