在pycharm中调试代码,终止时报错:进程已结束,退出代码137 (interrupted by signal 9: SIGKILL)
网上查找时,遇到这个问题的一般是训练网络时的内存不足,进程被系统结束了,但我这里遇到的不是这样的问题,代码运行时正常,而终止经常出现这个问题,这里说下原因:
多次发送快捷键引发的bug
因为觉得用鼠标点击pycharm的“运行”和“停止”按钮很麻烦,所以想直接使用对应的快捷键 运行shift+F10、停止ctrl+F2,然后就想用digispark作为键盘,实现一键运行和停止,如下图所示,另外接了两个按键。digispark中的代码逻辑是每0.1s检测一下,如果对应的键按下,就发送相应的快捷键,也就是说如果按键一直按下,每隔0.1s就会发送一次,而pycharm在短时间接收到个停止命令就会出现上述的bug(pycharm版本2022.1),使用鼠标连续点按停止按钮同样会导致这个问题。将digispark中的代码改为每次按下只会发送一次后,问题解决。
digispark一键运行停止代码
#include "DigiKeyboard.h"
int key0 = 0;
int key1 = 0;
int flag0 = 0;
int flag1 = 0;
void setup() {
pinMode(0, INPUT);
pinMode(1, INPUT);
}
void loop() {
key0 = digitalRead(0);
key1 = digitalRead(1);
if(key0 == 1 && flag0 == 0)
{
DigiKeyboard.sendKeyStroke(KEY_F2, MOD_CONTROL_LEFT);
flag0 = 1;
}
else if(key0 == 0)
{
flag0 = 0;
}
if(key1 == 1 && flag1 == 0)
{
DigiKeyboard.sendKeyStroke(KEY_F10, MOD_SHIFT_LEFT);
flag1 = 1;
}
else if(key1 == 0)
{
flag1 = 0;
}
DigiKeyboard.delay(100);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)