Что надо, чтобы заработал debug?

Место, где разработчики плагинов могут поделиться своим опытом.
Post Reply
User avatar
techie
Posts: 795
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 35 times
Been thanked: 6 times

Что надо, чтобы заработал debug?

Post by techie »

Как настроить, чтобы работала ? Визуал студии нету - есть gcc.
Last edited by techie on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: Убрано спец. оформление (Значок); спрятан избыточный снимок экрана.
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

Что надо, чтобы заработал debug?

Post by HaRT »

techie wrote: Как настроить, чтобы работала кнопка debug при падении плагина? Визуал студии нету - есть gcc.
Конкретно про кнопку не скажу, но, насколько я знаю, если бинарь (Far.exe) собран Студией, то в gdb не получится использовать сгенерированную ею отладочную информацию (а без неё отладка на порядок сложнее). Если же это падение в Фаре, собранном gcc, то есть шанс, что получится поотлаживать. Но вообще лучше всего воспроизвести проблему в Фаре, запущенном из-под отладчика.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
techie
Posts: 795
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 35 times
Been thanked: 6 times

Что надо, чтобы заработал debug?

Post by techie »

Как бы это облегчить процесс для простых смертных, чтобы не надо было стелить соломку каждый раз? Я так понимаю команда

Code: Select all

gdb far.exe
нужна. А куда исходники к ней класть?

Как узнать, чем собран Far? Usage не помогает.

Code: Select all

E:\[SCENE]\twodays>far -h
Far Manager, version 3.0 (build 4770) x86
Copyright © 1996-2000 Eugene Roshal, Copyright © 2000-2016 Far Group
Usage: far [switches] [apath [ppath]]
Сильно будет тормозить под дебаггером? Может http://rr-project.org/ на винде заведётся?
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

Что надо, чтобы заработал debug?

Post by HaRT »

techie wrote: Как бы это облегчить процесс для простых смертных
Простым смертным не надо лезть в отладчик — это вотчина программистов. ;) Как пишут на защитных кожухах бытовой техники, “No user serviceable parts inside”.
Если уж очень хочется поотлаживать, то советую найти и изучить какое-нибудь дельное руководство. Притом отладка в консольном gdb — это для очень немногих, большинству удобнее в каком-нибудь графическом фронт-энде вроде Qt Creator или Eclipse. Вроде бы с недавних пор можно бесплатно и к небесплатной Visual Studio 2015 прикрутить, но я ещё не пробовал.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

Что надо, чтобы заработал debug?

Post by Ariman »

HaRT wrote:Вроде бы с недавних пор можно бесплатно и к небесплатной Visual Studio 2015 прикрутить
Если студию ставить, то проще Far под ней и собирать и дебажить. Зачем туда ещё gdb приделывать.
techie wrote:Как бы это облегчить процесс для простых смертных
Visual Studio поставить. Упрощает процесс максимально. :)
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Что надо, чтобы заработал debug?

Post by DrKnS »

techie wrote: Визуал студии нету - есть gcc.
Кнопка Debug вызывает vsjitdebugger.exe -p <PID> и это пока не настраивается.
Но ещё можно нажимать Cancel. В этом случае вызовется то, что у вас в системе зарегистрировано.
User avatar
techie
Posts: 795
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 35 times
Been thanked: 6 times

Что надо, чтобы заработал debug?

Post by techie »

Ага. По инструкции получилось приаттачиться к процессу после того, как нашёл PID для окна с заголовком "Exception occurred". Символов нет, без них ничего не понятно. Где их взять?

Code: Select all

E:\>gdb
...
This GDB was configured as "i686-w64-mingw32".
...
(gdb) attach 8452
Attaching to process 8452
[New Thread 8452.0x22e0]
[New Thread 8452.0x1354]
[New Thread 8452.0x1e00]
[New Thread 8452.0x1e90]
[New Thread 8452.0x1838]
Reading symbols from C:\Users\user\AppData\Local\Far Manager\Far.exe...(no debugging symbols found)...done.
0x7719866f in ntdll!DbgBreakPoint () from C:\Windows\system32\ntdll.dll
(gdb)
Может символы и не помогут? Что делать вообще и куда смотреть? Мне надо понять почему мой HelloWorld крэшится.

Code: Select all

(gdb) bt
#0  0x7719866f in ntdll!DbgBreakPoint () from C:\Windows\system32\ntdll.dll
#1  0x771dd3b0 in ntdll!DbgUiRemoteBreakin () from C:\Windows\system32\ntdll.dll
#2  0x5f65a736 in ?? ()
#3  0x00000000 in ?? ()
(gdb)
User avatar
techie
Posts: 795
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 35 times
Been thanked: 6 times

Что надо, чтобы заработал debug?

Post by techie »

DrKnS wrote: Но ещё можно нажимать Cancel. В этом случае вызовется то, что у вас в системе зарегистрировано.
Ignore т.е.? Нашёл туториал - http://bengreen.eu/fancyhtml/quickrefer ... ndows.html - жмякал Ignore до исчезновения посинения, что-то вывалилось, но без символов плохо всё.

Code: Select all

(gdb) cont
Continuing.

Program received signal SIGSEGV, Segmentation fault.
0x02926f77 in ?? ()
(gdb) bt
#0  0x02926f77 in ?? ()
#1  0x64ae6600 in ?? () from C:\Python35\python35.dll
#2  0x64b766f3 in python35!PyList_AsTuple () from C:\Python35\python35.dll
#3  0x64ae7113 in ?? () from C:\Python35\python35.dll
#4  0x64ae8237 in python35!PyGC_Collect () from C:\Python35\python35.dll
#5  0x64c034a9 in python35!Py_Finalize () from C:\Python35\python35.dll
#6  0x0021dc58 in ?? ()
#7  0x00ea309e in ?? ()
#8  0x00ea343b in ?? ()
#9  0x00ecfa3e in ?? ()
#10 0x00d6ea58 in ?? ()
#11 0x00e811da in ?? ()
#12 0x00f3e467 in ?? ()
#13 0x00e8139d in ?? ()
#14 0x00f36cb1 in ?? ()
#15 0x770bd3b1 in KERNEL32!BaseThreadInitThunk () from C:\Windows\system32\kernel32.dll
#16 0x771914f7 in ntdll!RtlInitializeExceptionChain () from C:\Windows\system32\ntdll.dll
#17 0x771914ca in ntdll!RtlInitializeExceptionChain () from C:\Windows\system32\ntdll.dll
#18 0x00000000 in ?? ()
(gdb) cont
Continuing.
[Thread 8452.0x1e90 exited with code 0]
[Thread 8452.0x1e00 exited with code 0]
[Thread 8452.0x1354 exited with code 3]
[Inferior 1 (process 8452) exited with code 03]
(gdb) cont
The program is not being run.
(gdb) quit
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Что надо, чтобы заработал debug?

Post by DrKnS »

Ну так у вас вроде как в питоне падает, так что символы - на python.org.
Post Reply

Return to “Разработка плагинов”