pycharm终止代码运行时报错:进程已结束,退出代码137 (interrupted by signal 9: SIGKILL)

在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() {
    // put your setup code here, to run once:
    pinMode(0, INPUT);
    pinMode(1, INPUT);
}

void loop() {
    // put your main code here, to run repeatedly:
    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);
}

版权声明:本文为qq_38287351原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。