FarDebug — Интеграция FAR с GNU Debugger (GDB)

Здесь можно обсудить ваш любимый плагин.
Maximus5
Posts: 3294
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 7 times
Contact:

FarDebug — Интеграция FAR с GNU Debugger (GDB)

Post by Maximus5 »

Анонс

Оказалось полезно и удобно. Есть два но...

1. Чтобы скачать сам отладчик - нужно идти сразу сюда: http://sourceforge.net/project/showfile ... up_id=2435
Из архива (gdb-6.8-mingw-3.tar.bz2) нужны только файлы gdb.exe (и может быть?) gdbserver.exe, должны быть доступны через PATH.

2. Что-то странное с юникодной версией плагина. Dll'ки чуть-чуть отличаются, но если заглянуть внутрь - юникодная версия экспортирует таки ансишный набор функций. И она вроде бы валит ФАР. Во всяком случае, после того как фар несколько раз свалился при попытке вызвать Evaluate (диалог показался и хоп...) - я банально перенес папку с плагином в ANSI версию и продолжил в ней. ANSI не падал.
Может быть, конечно, я чего-то напутал и распаковал в юникодный фар ансишную версию - но все равно фар падать не должен.
Max Rusov
Posts: 3632
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 1 time
Been thanked: 12 times

Re: FarDebug - Интеграция FAR с GNU Debugger (GDB)

Post by Max Rusov »

Ну там API менялся, пересобрать, наверное, надо. Сделаю.
Max Rusov
Posts: 3632
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 1 time
Been thanked: 12 times

Re: FarDebug - Интеграция FAR с GNU Debugger (GDB)

Post by Max Rusov »

Теперь юникодная версия должна быть действительно юникодной. :)
ujos
Posts: 173
Joined: Fri 27 Apr, 2012 15:10
Has thanked: 1 time

Re: FarDebug - Интеграция FAR с GNU Debugger (GDB)

Post by ujos »

К linux gdb-серверу можно подключиться?
Max Rusov
Posts: 3632
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 1 time
Been thanked: 12 times

Re: FarDebug - Интеграция FAR с GNU Debugger (GDB)

Post by Max Rusov »

Я не пробовал, но, наверное, можно. Там доступна консоль отладчика, так что, теоретически, доступны все возможности GDB, через командную строку.
ivmai
Posts: 16
Joined: Wed 22 Jul, 2009 11:30

Re: FarDebug - Интеграция FAR с GNU Debugger (GDB)

Post by ivmai »

Есть небольшой баг - не могу открыть некоторые файлы (в т.ч. из подменю "Sources") - пишет "The specified name is invalid" C:\Folder1\Folder2\\SomeFile.c (присутствует двойной слэш).
Max Rusov
Posts: 3632
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 1 time
Been thanked: 12 times

Re: FarDebug - Интеграция FAR с GNU Debugger (GDB)

Post by Max Rusov »

ivmai

Если модуль не очень большой, приложи, pls, в качестве примера. Только откомпилированный модуль, исходники не надо. Откомпилированный с debug info, конечно.
ivmai
Posts: 16
Joined: Wed 22 Jul, 2009 11:30

Re: FarDebug - Интеграция FAR с GNU Debugger (GDB)

Post by ivmai »

вот тест (+ исходники).
Attachments
test_case.7z
testcase for '\\'
(4.19 KiB) Downloaded 201 times
Max Rusov
Posts: 3632
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 1 time
Been thanked: 12 times

Re: FarDebug - Интеграция FAR с GNU Debugger (GDB)

Post by Max Rusov »

Вроде подкрутил.
ivmai
Posts: 16
Joined: Wed 22 Jul, 2009 11:30

Re: FarDebug - Интеграция FAR с GNU Debugger (GDB)

Post by ivmai »

Да, работает. Спасибо.

Ещё некоторые пожелания-предложения (на будущее):
1. не хватает команды "Finish" (или "Until return");
2. после выхода из Debug console автоматически делать Locate если до входа в Debug console курсор был в текущей позиции исполнения;
3. если нажать на Step или Next когда находишься на "}" для "main" то всегда выскакивает "No line number information available for address ♪ __mingw_CRTStartup+XXX" - можно ли его убрать?;
4. в меню "Open" автоматически добавлять ".exe" если не найден файл (как в gdb);
5. при завершении работы программы (включая Kill), автоматически закрывать окна (кроме текущего) открытые FarDebug (только если не было модификации текста в окне и курсор в том окне находиться в строке выделенной FarDebug'ом (как строка исполнения));
6. автоматически закрывать одно окно (наиболее давно на которое FarDebug не переключался, кроме текущего) открытые FarDebug (только если не было модификации текста в том окне и курсор в том окне находиться в строке выделенной FarDebug'ом) перед открытием FarDebug'ом нового окна если всего открытых (не только FarDebug'ом) окон уже 9.

Ещё раз спасибо (за хороший плагин).
ivmai
Posts: 16
Joined: Wed 22 Jul, 2009 11:30

Re: FarDebug - Интеграция FAR с GNU Debugger (GDB)

Post by ivmai »

Если не может найти gdb, то при попытке открыть любой (из меню FarDebug) файл выводит "не удается найти указанный файл" - лучше бы выводило "не удается найти gdb".
Max Rusov
Posts: 3632
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 1 time
Been thanked: 12 times

Re: FarDebug - Интеграция FAR с GNU Debugger (GDB)

Post by Max Rusov »

Спасибо за замечания. Постараюсь учесть в будущих версиях.
mamaich
Posts: 10
Joined: Thu 17 Jun, 2010 06:22

Re: FarDebug - Интеграция FAR с GNU Debugger (GDB)

Post by mamaich »

Пробую использовать данный плагин для отладки программ запущенных на девайсе на Андроиде. На ПК переписать arm-eabi-gdb.exe как gdb.exe, иначе плагин запускал вындовую версию GDB - отсюда первое пожелание: ввести настройки плагину, в которых указать имя gdb.exe
Если в плагине пробую выполнить любую команду - получаю "No symbol table is loaded. Use the "file" command". Пробую вручную ввести через "Debug console" команду "file a.out" - плагин "задумывается", после чего вылезает окно "FAR Debug" - "Out of memory".
Есть у плагина какая-нибудь отладка, чтобы понять что ему не хватает?
Max Rusov
Posts: 3632
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 1 time
Been thanked: 12 times

Re: FarDebug - Интеграция FAR с GNU Debugger (GDB)

Post by Max Rusov »

mamaich wrote:пожелание: ввести настройки плагину, в которых указать имя gdb.exe
Такое есть:
[HKEY_CURRENT_USER\Software\Far2\Plugins\FarDebug]
"GDBName"="GDB"
"GDBPresets"=""
mamaich wrote:Есть у плагина какая-нибудь отладка, чтобы понять что ему не хватает?
А просто через GDB - получается? Без плагина? Если да - приведи, pls, листинг простой отладочной сессии.
mamaich
Posts: 10
Joined: Thu 17 Jun, 2010 06:22

Re: FarDebug - Интеграция FAR с GNU Debugger (GDB)

Post by mamaich »

Да, при обычном использовании GDB все работает:
на девайсе запускаю: gdbserver localhost:123 a.out
прокидываю порт 123 с девайса на 1234 на хосте (adb forward tcp:1234 tcp:123)
далее в arm-eabi-gdb.exe:

Code: Select all

GNU gdb 6.6
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "--host=i686-pc-cygwin --target=arm-elf-linux".
(gdb) file a.out
Reading symbols from /project/a.out...done.
(gdb) target remote localhost:1234
Remote debugging using localhost:1234
[New Thread 168]
warning: Unable to find dynamic linker breakpoint function.
GDB will be unable to debug shared library initializers
and track explicitly loaded dynamic code.
0xb0000100 in ?? ()
(gdb) shared
(gdb) br main
Breakpoint 1 at 0x943c: file test/test1.cpp, line 8.
(gdb) c
Continuing.
Error while mapping shared library sections:
/system/bin/linker: No medium found.
Error while mapping shared library sections:
libc.s o: No error.
Error while mapping shared library sections:
libm.s o: No error.

Breakpoint 1, main () at test/test1.cpp:8
8           UwString Str2("CP866 ▒▒▒▒▒▒",866);
(gdb) next
7           UwString Str1;
(gdb) и так далее
Кстати, если взять GDB от CygWin а не от MinGW и пытаться отлаживать в нем обычные вындовые программы - тоже имеются проблемы, плагин просто виснет. Возможно, проблема тут именно в CygWin-овской сборке GDB. Увы, пересобрать GDB для mingw и target=arm-linux-elf у меня навскидку не получилось.
Post Reply

Return to “Обсуждение плагинов”