I’m running Eclipse on win7. I want to make console applications that can run on either windows or linux. I followed the guide here on how to setup the compiler
I’m trying to compile and run a simple hello world program. It compiles fine, but when I try to debug I get the following error:
'launching test' has encountered a problem.
Error in final launch sequence.
Clicking details reveals the following information.
Error in final launch sequence
Failed to execute MI command:
-exec-run
Error message from debugger back end:
Don't know how to run. Try "help target".
Don't know how to run. Try "help target".
My gdb debugger path is C:codesourcerybinarm-none-eabi-gdb.exe
I’m not exactly sure how to proceed.
none
11.6k9 gold badges49 silver badges87 bronze badges
asked Oct 25, 2012 at 12:39
If you’re creating a windows console then I would think you would need gdb found in c:minGW or wherever you have your Windows 7 gcc toolchain.
To change your debugger on Eclipse Kepler go to:
Run->Debug Configurations. Select Debugger tab and in the «GDB debugger:» field, enter the path of your Windows gdb.exe file (c:MinGWbingdb.exe if you’re using minGW)
answered Jan 24, 2014 at 6:06
I realize this is an old question, but hoping it will help someone. In my case, there was a breakpoint set with only a memory address (no file name associated with it). Not sure how I got into this situation… Once I removed the breakpoint, I was able to launch my program with debugger. Note, I am using Eclipse Luna CDT (SR2)
answered Nov 6, 2015 at 17:28
2
Содержание
- MCU on Eclipse
- Everything on Eclipse, Microcontrollers and Software
- Workaround for “Error in final launch sequence: Cannot execute this command without a live selected thread.”
- Workaround
- Summary
- Share this:
- Like this:
- Related
- About Erich Styger
- 7 thoughts on “ Workaround for “Error in final launch sequence: Cannot execute this command without a live selected thread.” ”
- What do you think? Cancel reply
- Error in final launch sequence failed to execute mi command
- Breadcrumbs
- Error in final launch sequence failed to execute mi command
- Breadcrumbs
MCU on Eclipse
Everything on Eclipse, Microcontrollers and Software
Workaround for “Error in final launch sequence: Cannot execute this command without a live selected thread.”
Recently I have been running into the following error message in Eclipse when I started the GDB debugger:
Error in Final Launch Sequence
Error in Final Launch Sequence
The error details do not show much more:
It does not happen all the time, but it happens often with the Segger J-Link GDB server. It does not happen for ‘small’ programs (say less than 50 KByte). But it happens more often for larger programs (say > 100 KByte of FLASH).
I have enabled GDB Traces (see “Board Bring-Up Tips, GDB Logs and Traces in Eclipse” how to enable GDB Traces) to get more information about the problem:
Googling around, it seems that GDB throws this message if GDB receives a command, but has not initialized properly yet. So to me it seems that GDB is still busy with doing things after the download, and then it receives a command (in my case the ‘continue’ command), and is not ready yet.
The problem is that with that error message above, I have to restart the download/flashing again.
Workaround
I have not found a solution, but found at least a workaround. Because there seems to be a race condition with the download and the ‘continue’ execution, I have disabled the ‘continue’ in the GNU ARM Eclipse/GDB launch configuration:
Disabled Continue in Launch Configuration
That way, GDB is not instructed to do a ‘continue’ after the download. So it will stay on the reset vector/startup. Then I simply do a ‘continue’ in the debugger UI. I searched for a ‘wait for x ms’ function in the GDB command list, but have not found anything suitable for this situation. That would have been another workaround: say wait 500 ms after the download until executing the ‘continue’ command .
Thanks to John (see comments) there is an even better solution: The Segger GDB server accepts a timeout command, e.g. to wait 500 ms:
That way, the problem was solved for me too :-).
Summary
There seems to be a timing problem between the GDB server and client. As a workaround I do not configure GDB to continue execution after downloading.
Like this:
About Erich Styger
7 thoughts on “ Workaround for “Error in final launch sequence: Cannot execute this command without a live selected thread.” ”
According to the J-Link User Guide, the following GDB command should deliver a 500ms pause when using the J-Link GDB server:
monitor sleep 500
Regardless of the GDB server in use, the following GDB command would deliver a 1 second pause on a Windows host:
shell timeout /nobreak /t 1
and the equivalent command on a Linux host would be:
Hi John,
incredible! I was looking for something like this for a long time, but somehow missed that monitor command. It works perfectly with the Segger J-Link :-).
The other approach with the GDB command did not work:
392,279 &”shell timeout /nobreak /t 5n”
392,295 &”timeout /nobreak /t 5 exited with status 1n”
But the Segger monitor command works, so I’m good for now, and I have updated the article.
Many thanks again for sharing that idea,
Erich
I have noticed another issue along similar lines that you had seen here when using J-link with an older project from KDS 3.0.0 opened in KDS 3.2.0.
I have a project in KDS 3.0.0 that uses KSDK 1.2 along with processor expert. That project I have been using a FRDM-K64F via the 10-pin ribbon to my target using PE micro tools. All that works fine. Target is a K64FX512M12.
I opened that same project in KDS 3.2.0 and I am trying to use a J-link plus with that project. ( KDS 3.2.0 I have done a KSDK 1.2 update.). However, I get similar sort of error window that pops up that you had encountered:
Error in final launch sequence
Failed to execute MI command:
-exec-run
Error message from debugger back end:
Don’t know how to run. Try “help target”.
Don’t know how to run. Try “help target”.
I tried using the J-link with a demo project from the KSDK 2.1 examples and j-link and debugger worked flawlessly. I compared the two launch files (between demo project and my older project) and there is not really much difference other than project information. For fun I made them the same (using file comparison) with only project name differences and still get the same error above in my original project.
Seems like my last resort here is to create a new project and move things over from the old project, but wondering if anyone else has experienced this sort of problem or if there is a better way? We have several older projects we wish to move and I don’t like the idea of rebuilding each project from scratch. Maybe this is another possible blog item in terms of long term project management or migration upgrade strategies when using Freescale/NXP tool chains (especially what to avoid).
Erich, your blog is indispensable for us out here in the wild. Thank you!
Hi Mike,
it sounds that the J-Link is trying to connect to a target it does not know. Are you sure the ‘Device name’ in the Segger debugger launch settings is correct?
Other than that, if you can, you might send me your ‘working’ and ‘not working’ .launch files to the email address listed on the About page of this blog, and I try to spot the problem.
Erich
PS: Thanks, and I’m in the wild too 🙂
Hi Mike,
on another thought: it is possible to copy a working launch configuration into any project, see the basic steps in https://mcuoneclipse.com/2017/02/18/tips-for-making-copy-of-eclipse-cdt-projects-easier/
I hope this helps,
Erich
In STM32 workbench I have been getting the error.
“Cannot insert hardware breakpoint 1.nCould not insert hardware breakpoints:nYou may have requested too many hardware breakpoints/watchpoints.”
Have you tried removing some of your breakpoints? Depending on your STM32 device used, you only have 3 or 4 hardware breakpoints. Other than that, I suggest using a SEGGER J-Link as this comes with ‘unlimited’ flash breakpoints feature.
What do you think? Cancel reply
This site uses Akismet to reduce spam. Learn how your comment data is processed.
Источник
Error in final launch sequence failed to execute mi command
Community
Participate
Eclipse IDE
Home » Language IDEs » C / C++ IDE (CDT) » Error in final launch sequence Failed to execute MI command (When trying to flash program on to a particular MCU we are facing this issue.)
Error in final launch sequence Failed to execute MI command [message #1084318] | Sun, 11 August 2013 10:04 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Hello i am very new to eclipse. Currently using code sourcery as IDE to develop C/C++ applications.We are able to build the application successfully.But when we try to flash the program on to MCU the below error is displayed.
Error in final launch sequence Источник Error in final launch sequence failed to execute mi commandCommunity Participate Eclipse IDE BreadcrumbsHome » Language IDEs » C / C++ IDE (CDT) » Failure to execute MI command during Debug — Helios
|
Recently I have been running into the following error message in Eclipse when I started the GDB debugger:
Error in Final Launch Sequence
The error details do not show much more:
Error in final launch sequence
Failed to execute MI command:
continue
Error message from debugger back end:
Cannot execute this command without a live selected thread.
Failed to execute MI command:
continue
Error message from debugger back end:
Cannot execute this command without a live selected thread.
Cannot execute this command without a live selected thread.
It does not happen all the time, but it happens often with the Segger J-Link GDB server. It does not happen for ‘small’ programs (say less than 50 KByte). But it happens more often for larger programs (say > 100 KByte of FLASH).
I have enabled GDB Traces (see “Board Bring-Up Tips, GDB Logs and Traces in Eclipse” how to enable GDB Traces) to get more information about the problem:
688,887 (gdb) 688,888 &"flushregn" 688,888 ~"Register cache flushed.n" 688,888 45^done 688,888 (gdb) 688,888 &"continuen" 688,888 ~"Continuing.n" 688,888 &"Cannot execute this command without a live selected thread.n" 688,888 46^error,msg="Cannot execute this command without a live selected thread." 688,888 (gdb) 688,889 47-gdb-exit 688,898 47^exit 688,906 =thread-group-exited,id="i1"
Googling around, it seems that GDB throws this message if GDB receives a command, but has not initialized properly yet. So to me it seems that GDB is still busy with doing things after the download, and then it receives a command (in my case the ‘continue’ command), and is not ready yet.
The problem is that with that error message above, I have to restart the download/flashing again.
I have not found a solution, but found at least a workaround. Because there seems to be a race condition with the download and the ‘continue’ execution, I have disabled the ‘continue’ in the GNU ARM Eclipse/GDB launch configuration:
Disabled Continue in Launch Configuration
That way, GDB is not instructed to do a ‘continue’ after the download. So it will stay on the reset vector/startup. Then I simply do a ‘continue’ in the debugger UI. I searched for a ‘wait for x ms’ function in the GDB command list, but have not found anything suitable for this situation. That would have been another workaround: say wait 500 ms after the download until executing the ‘continue’ command.
Thanks to John (see comments) there is an even better solution: The Segger GDB server accepts a timeout command, e.g. to wait 500 ms:
monitor sleep 500
monitor-sleep-500
That way, the problem was solved for me too :-).
Summary
There seems to be a timing problem between the GDB server and client. As a workaround I do not configure GDB to continue execution after downloading.
Happy Continuing 🙂
$begingroup$
I have been struggling with OpenOCD debugger under Eclipse Neon 4.6.2. Whenever I run the debug configuration I receive below given error message
I have been attempting to debug the STM32F417VGT6 MCU. My debug configuration setting is following
Main tab
Debugger tab
Startup tab
Source tab
Common tab
Have anybody ever had similar problem? Thanks for any ideas.
- stm32
- debugging
- eclipse
- st-link
- openocd
asked Sep 12, 2018 at 11:25
SteveSteve
9356 silver badges18 bronze badges
$endgroup$
1
-
$begingroup$
Please add actual console output. Another suggestion would be to try performing flash-erase and re-flashing via ST-Link utility to verify, that the board is actually flashable and that the error is indeed with eclipse/openocd combination
$endgroup$Sep 27, 2018 at 14:10
Вот как происходит запуск ST-LINK_gdbserver
Atollic TrueSTUDIO gdbserver for ST-Link. Version 1.7.0 Pro Copyright 2010-2012, Atollic AB. Starting server with the following options: Persistant Mode : Enabled LogFile Name : debug.log Logging Level : 31 Listen Port Number : 61234 Status Refresh Delay : 15s Verbose Mode : Disabled SWD Debug : Enabled Connecting to the ST-Link Debugger... OK Waiting for debugger connection...
В общем эксперимент показал что такую ошибку выдает даже если не запускать ST-LINK_gdbserver вообще. Тоесть он его не видит или отладка вылетает еще до попытки связи с ним.
Попробовал в настройках debug выбрать Standart GDB Hardware Debugging Launcher, по умолчанию было GDB (DSF) Hardware Debugging Launcher.
Теперь с ST-LINK_gdbserver связывается но тот сразу закрывает соединение.
Error while waiting for debugger connection. Shutting down... Debugger connection lost. Shutting down...
Изменено 8 февраля, 2013 пользователем flopix
Ок, сделал по мануалу компил http://we.easyelectronics.ru/CADSoft/ubuntu-eclipse-code-sourcery-openocd-j-link-arm-ili-bystryy-start-dlya-somnevayuschihsya.html, так все заработало. Другое дело, там код простенький, не знаю, как отнесется к сложному. Но теперь другая проблема, мне в первую очередь хотя бы такую программу залить бы, вот я настраиваю заливку по мануалу http://robocraft.ru/blog/ARM/653.html, вроде из консоли устройство норм пингуется, а с eclipse выдается ошибка:
Код:
Error in final launch sequence
Failed to execute MI command:
source /home/eugene/workspace/Test/gdb_commands_debug
Error message from debugger back end:
/home/eugene/workspace/Test/gdb_commands_debug:1: Error in sourced command file:
:4242: Connection timed out.
/home/eugene/workspace/Test/gdb_commands_debug:1: Error in sourced command file:
:4242: Connection timed out.
Может подскажет кто, не могу сообразить, что можно поправить. Уже и пути пытался полные прописать через Browse…
Вот что происходит, если мутить из консоли:
Цитата:
(gdb) cd /home/eugene/workspace/Test/Debug
Working directory /home/eugene/workspace/Test/Debug.
(gdb) load Test.elf
Loading section .isr_vector, size 0x188 lma 0x8000000
Loading section .text, size 0x84 lma 0x8000188
Start address 0x80001c8, load size 524
Transfer rate: 15 bytes/sec, 262 bytes/write.
(gdb)
Ну то есть с консоли мутится, что-то в настройках Eclipse не то, скорее всего. Причем когда к порту 4242 не подключен консольный gdb, все опять же робит. Хоть в конце дебагга выдается ошибка
Цитата:
Error in final launch sequence
Failed to execute MI command:
-gdb-set target-async off
Error message from debugger back end:
Cannot change this setting while the inferior is running.
Cannot change this setting while the inferior is running.
Мда, из дебагера все же не шьет. Хотя через консоль шьет. Что делать?
_________________
На практике можно не успеть сделать того, что можно хорошо обосновать в теории. Но без практики теория может отдаляться от нее, и когда они встретятся снова — не узнает даже неприкосновенное шампанское профессора в лаборатории. Моя практика: robofeya.ru