我使用python 3.5.2
和PyQt5
编写了一个小型模拟程序。我以前使用PyQt4
并且在Qt
内发生了间歇性分段错误的问题。因此,测试要求程序运行大约20次,以确保故障不会发生。
现在我想知道是否有一种简单的方法来编写我可以使用gdb run
运行的脚本,它可以执行以下操作:
for i in range(20):
run MyProgram.py
wait(startup time)
input keyboard commands with appropriate intervals
wait for program to run
if error occurs:
force kill MyProgram.py
continue loop
elif runtime > some value:
input more keyboard commands
continue loop
如果没有安装任何昂贵的软件,有没有办法做到这一点?
答案 0 :(得分:0)
测试要求程序运行大约20次以确保 故障没有发生
您不必仅在gdb中测试程序,因为如果崩溃,您需要查看回溯。通常,如果程序接收到SIGSEGV信号,则程序的进程终止并且核心被转储。稍后您可以在gdb中打开核心转储并查看崩溃进程的回溯:
gdb program core
...
(gdb) bt
...
请参阅How to generate a core dump in Linux when a process gets a segmentation fault?如何在Linux上启用核心转储保存。