Отладка J-Link GDB в CLion

Недавно в CLion добавлена ​​поддержка удаленного Отладка GDB, и я пытаюсь настроить его с помощью сервера Seggers J-Link GDB.

Моя установка:

  • Виртуальная машина VirtualBox под управлением Ubuntu 16.04
  • Драйверы J-Link: V6.10
  • Целевой чип: nRF51 (ARM Cortex M0)
  • КЛион 2016.2.2

Обычно я работаю в Windows, но поскольку CLion не поддерживает удаленный GDB в Windows, я пытаюсь заставить его работать с Ubuntu в VirtualBox. Я настроил отладчик в CLion, как показано на изображении, с небольшой помощью из блога по ссылке выше. Аргументы, которые я использовал, основаны на документации J-Link (Документ: UM08001) и некоторых предположениях. Настройка сервера GDB

Моя проблема в том, что при запуске отладчика процесс просто останавливается, и консоль CLion выводит:

«Не удалось подключиться к цели. Проверьте питание, подключение и настройки».

Я попытался запустить JLinkGDBServer с терминала, а затем дошел до этого:

/usr/bin/JLinkGDBServer -device nrf51422_xxAC -if swd -speed 1000 -endian little
SEGGER J-Link GDB Server V6.10 Command Line Version

JLinkARM.dll V6.10 (DLL compiled Sep 14 2016 16:46:16)

-----GDB Server start settings-----
GDBInit file:                  none
GDB Server Listening port:     2331
SWO raw output listening port: 2332
Terminal I/O port:             2333
Accept remote connection:      yes
Generate logfile:              off
Verify download:               off
Init regs on start:            off
Silent mode:                   off
Single run mode:               off
Target connection timeout:     0 ms
------J-Link related settings------
J-Link Host interface:         USB
J-Link script:                 none
J-Link settings file:          none
------Target related settings------
Target device:                 nrf51422_xxAC
Target interface:              SWD
Target interface speed:        1000kHz
Target endian:                 little

Connecting to J-Link...
J-Link is connected.
Firmware: J-Link OB-SAM3U128-V2-NordicSemi compiled Jul  5 2016 08:42:09
Hardware: V1.00
S/N: 681666518
Checking target voltage...
Target voltage: 3.30 V
Listening on TCP/IP port 2331
Connecting to target...Connected to target
Waiting for GDB connection...

Кто-нибудь знает, что я делаю неправильно?


person bad_coffee    schedule 17.09.2016    source источник


Ответы (1)


Вероятно, вы путаете сервер GDB и сам GDB. Это параметры GDB, которые должны быть установлены в конфигурации удаленной отладки GDB в CLion, а не в настройках сервера GDB.

То есть вы сначала запускаете JLinkGDBServer вручную, например, из терминала, как вы это уже делали, и оставляете его ждать подключения GDB. В этот момент следует обратить внимание на порт подключения:

Listening on TCP/IP port 2331
Connecting to target...Connected to target
Waiting for GDB connection...

Затем отредактируйте конфигурацию удаленной отладки GDB в CLion, чтобы использовать GDB хоста (скорее всего, /usr/bin/gdb в вашем случае, при необходимости установите его, используя sudo apt install gdb), и используйте порт, упомянутый выше, как часть строки «target remote»:

  • ГБД: /usr/bin/gdb
  • Аргументы «целевой удаленный»: :2331

Обратите внимание на предыдущее двоеточие перед портом. Это сокращение для подключения к локальному хосту с использованием TCP. На всякий случай явная форма tcp:localhost:2331.

Теперь вы можете начать сеанс отладки. CLion запустит настроенный хост GDB, GDB свяжется с JLinkGDBServer через указанное TCP-соединение, и, наконец, сервер GDB будет общаться с вашим устройством.

person Eldar Abusalimov    schedule 18.09.2016
comment
Может ли это работать в версии сообщества IntelliJ? Спасибо! - person Geob-o-matic; 07.04.2017
comment
@Geob-o-matic, нет, эта функция доступна только в CLion. - person Eldar Abusalimov; 07.04.2017
comment
Спасибо, тогда застрял с затмением… :'( - person Geob-o-matic; 07.04.2017
comment
@Geob-o-matic Вы можете попробовать 30-дневную пробную версию или начать с версии EAP, которая также бесплатна. - person Eldar Abusalimov; 07.04.2017
comment
Я не могу этого сделать, потому что предоставленный SDK основан на eclipse, и я просто пытался найти мошеннический способ улучшить свое качество жизни, но, в конце концов, мне все равно нужно оставаться совместимым с настройками eclipse, чтобы работать с моими коллегами. И мы не получим поддержку от нашего провайдера, если будем использовать другую IDE, чем та, что поставляется :) - person Geob-o-matic; 07.04.2017