Theia 奇怪的问题
我有一个包含由 main 调用的函数的程序。
如果添加该函数的注释、则一切都正常:
如果没有为该函数添加注释、Theia 不会显示我保留在 main:


我认为我是这样、因为它显示它暂停了。
(ETA:我有一个时间的魔鬼让两个图像都进入了!)
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Theia 奇怪的问题
我有一个包含由 main 调用的函数的程序。
如果添加该函数的注释、则一切都正常:
如果没有为该函数添加注释、Theia 不会显示我保留在 main:


我认为我是这样、因为它显示它暂停了。
(ETA:我有一个时间的魔鬼让两个图像都进入了!)
Unknown 说:我假设我是这样的,因为它显示它暂停了。
您是否可以展开呼叫堆栈以确认?
(ETA:我有一个时间的恶魔获得两个图像!)
您应该能够将图像从本地 PC 拖放到编辑/回复字段中。 这是您尝试的结果吗?
如果添加该函数的注释、则一切都正常:
如果没有为该函数添加注释、Theia 不会显示我保留在 main:
[/报价]什么是函数(我在屏幕截图中没有看到它)? 您能提供一个小型测试用例吗?
谢谢
小
我终于做到了这一点,首先我使用的是"插入图像"对话框,它一直在用以前的图像替换图像。
这实际上是我通常这样做的。 但对于多个图像、您必须一次执行一个操作。 如果您在点击"确定"之前再次按上载、它只会替换图像。
我不能做一个小的测试用例,每次我做,它使问题消失。 我可以压缩并发布该项目。
FWiw、这里的函数是:
void DoKey(int key) {
uint32_t keystate;
uint32_t notkeystate;
// Note Pressed/Released only changes *after* the debounce period
// Now that the serial commands are out of the way, check the keys
// Check one key at a time
// First turn "on" the column
DL_GPIO_clearPins(GPIO_KEYBOARD_PORT, KeyStuff[key].col);
keystate = DL_GPIO_readPins(GPIO_KEYBOARD_PORT, KeyStuff[key].row);
notkeystate = !keystate;
if (KeyStuff[key].debounce == 0) {
// We are idle, did we get a change of state?
if (KeyStuff[key].pressed == RELEASED) {
// Currently not pressed
if (!keystate) {
// We are pressed
KeyStuff[key].debounce = GetMillis();
}
} else {
// Currently pressed
if (keystate) {
// We are released
KeyStuff[key].debounce = GetMillis();
}
}
} else {
// In a debounce period
if ((GetMillis() - KeyStuff[key].debounce) > BOUNCE_TICKS) {
KeyStuff[key].debounce = 0;
if (!keystate) {
// We are Pressed
KeyStuff[key].pressed = PRESSED;
switch (key) {
case 0: // Up Fast
if (EchoState == true) {
StartSerialTX("key0 Pressed\r\n");
}
// SetSpeed(FASTSPEED);
// Direction(UPDIR);
// GoForever();
break;
case 1: // Goto Mark
if (EchoState == true) {
StartSerialTX("key1 Pressed\r\n");
}
// SetSpeed(FASTSPEED);
// GoPosition(Mark[CurrentMark]);
// DisplayPos();
break;
case 2: // Down Fast
if (EchoState == true) {
StartSerialTX("key2 Pressed\r\n");
}
// SetSpeed(FASTSPEED);
// Direction(DWNDIR);
// GoForever();
break;
case 3: // Up Slow
if (EchoState == true) {
StartSerialTX("key3 Pressed\r\n");
}
// SetSpeed(SLOWSPEED);
// Direction(UPDIR);
// GoForever();
break;
case 4: // Change current mark
if (EchoState == true) {
StartSerialTX("key4 Pressed\r\n");
}
// CurrentMark++;
// CurrentMark = (CurrentMark > 2) ? (0) : (CurrentMark);
// DisplayMark();
break;
case 5: // Down Slow
if (EchoState == true) {
StartSerialTX("key5 Pressed\r\n");
}
// SetSpeed(SLOWSPEED);
// Direction(DWNDIR);
// GoForever();
break;
case 6: // Goto zero
if (EchoState == true) {
StartSerialTX("key6 Pressed\r\n");
}
// SetSpeed(FASTSPEED);
// GoPosition(0);
// DisplayPos();
break;
case 7: // Set Current Mark
if (EchoState == true) {
StartSerialTX("key7 Pressed\r\n");
}
// Mark[CurrentMark] = GetPosition();
// DisplayMark();
break;
case 8: // Set Zero
if (EchoState == true) {
StartSerialTX("key8 Pressed\r\n");
}
// Zero();
// DisplayPos();
break;
}
} else {
// We are released
KeyStuff[key].pressed = RELEASED;
// On release
switch (key) {
case 0: // Up Fast
if (EchoState == true) {
StartSerialTX("key0 Released\r\n");
}
// Stop();
// DisplayPos();
break;
case 1: // Goto Mark
if (EchoState == true) {
StartSerialTX("key1 Released\r\n");
}
break;
case 2: // Down Fast
if (EchoState == true) {
StartSerialTX("key2 Released\r\n");
}
// Stop();
// DisplayPos();
break;
case 3: // Up Slow
if (EchoState == true) {
StartSerialTX("key3 Released\r\n");
}
// Stop();
// DisplayPos();
break;
case 4: // Change Mark
if (EchoState == true) {
StartSerialTX("key4 Released\r\n");
}
break;
case 5: // Down Slow
if (EchoState == true) {
StartSerialTX("key5 Released\r\n");
}
// Stop();
// DisplayPos();
break;
case 6: // Goto Zero
if (EchoState == true) {
StartSerialTX("key6 Released\r\n");
}
break;
case 7: // Set Mark
if (EchoState == true) {
StartSerialTX("key7 Released\r\n");
}
break;
case 8: // Set Zero
if (EchoState == true) {
StartSerialTX("key8 Released\r\n");
}
break;
} // case
} // if
} // if
} // if keybounce = 0
DL_GPIO_setPins(GPIO_KEYBOARD_PORT, KeyStuff[key].col);
}
如果我删除正文或注释掉、问题就会消失。
Keith 好、我不想打断 Ki 的调试讨论、但您可能会发现下面的常见问题解答很有用- Jim