Mirage писал(а):Видео давно хочу запилить, но времени все никак не найду. Может, кто другой запилит.Хотя с виду отладка для паскаля не особо отличается от отладки на java.
Попробовал на скорую руку создать видео. (Наверное, чтобы показать, что делается вроде всё правильно, - а останова на контрольных точках нет..)
https://www.youtube.com/watch?v=vPJ_0Nzzaxs&t=319sMirage писал(а):Последовательность обычная: ставим брекпойнт, нажимаем кнопку "Debug" (не Run!).
Что меня смущает у отладчика Java на контрольных точках (красные точки слева) появляется символ галка (если останов на данной строке возможно выполнить) или крестик ((если останов на данной строке выполнить невозможно)).
На моем примере(см.видео),-нет никаких значков на красных точках останова?!
(посмотреть видео отладка программы в java, где говорится об этом можно, например, здесь:
https://www.youtube.com/watch?v=9joO-89 ... ex=12&t=2s)
Mirage писал(а):Окно Messages содержит командную строку компилятора.
В моем примере в окне Messages ключи отладчику переданы :\FPC\3.0.4\units\i386-win32\rtl
[u]-Ddebug -glh -CroiO -godwarfsets [/u]
полный текст см. ниже:
Information:Pascal builder: Compiler family:FPC
Information:Pascal builder: Compiler command: D:\FPC\3.0.4\bin\i386-win32\fpc.exe -viewnb -FED:\Free Pascal(TP7)\3.0.4\primer\idea\26\out\production\26 -FuD:\Free Pascal(TP7)\3.0.4\primer\idea\26 -FiD:\Free Pascal(TP7)\3.0.4\primer\idea\26 -FuD:\FPC\3.0.4\units\i386-win32\regexpr -FiD:\FPC\3.0.4\units\i386-win32\regexpr -FuD:\FPC\3.0.4\units\i386-win32\rtl-objpas -FiD:\FPC\3.0.4\units\i386-win32\rtl-objpas -FuD:\FPC\3.0.4\units\i386-win32\rtl -FiD:\FPC\3.0.4\units\i386-win32\rtl -Ddebug -glh -CroiO -godwarfsets D:\Free Pascal(TP7)\3.0.4\primer\idea\26\test26.pas (Module: 26)
Information:Pascal builder: D:\FPC\3.0.4\bin\i386-win32\fpc.exe
Information:Pascal builder: Free Pascal Compiler version 3.0.4 [2017/10/06] for i386
Information:Pascal builder: Copyright (c) 1993-2017 by Florian Klaempfl and others
Information:Pascal builder: Target OS: Win32 for i386
Information:Pascal builder: Compiling D:\Free Pascal(TP7)\3.0.4\primer\idea\26\test26.pas
Information:Pascal builder: Linking D:\Free Pascal(TP7)\3.0.4\primer\idea\26\out\production\26\test26.exe
Information:Pascal builder: 11 lines compiled, 0.1 sec, 43504 bytes code, 1892 bytes data
Information:Some files were changed during the build. Additional compilation may be required.
Information:06.03.2019 19:51 - Compilation completed successfully in 986 ms
Mirage писал(а):Вывод отладчика, который выводится в окно Debug, может помочь узнать в чем дело. Можно его сюда скопировать, посмотрим.
Но проблем:
>>>> -break-delete
>>>> -break-insert -f "
D:\Free Pascal(TP7)\3.0.4\primer\idea\26\test26.pas:9"
>>>> -gdb-set target-async on
>>>> -gdb-set new-console on
>>>> -exec-run
gdb -n -fullname -nowindows -interpreter=mi "" --args "D:\Free Pascal(TP7)\3.0.4\primer\idea\26\out\production\26\test26.exe"
=thread-group-added,id="i1"
~"GNU gdb (GDB) 7.2\n"
~"Copyright (C) 2010 Free Software Foundation, Inc.\n"
~"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\nThis is free software: you are free to change and redistribute it.\nThere is NO WARRANTY, to the extent permitted by law. Type \"show copying\"\nand \"show warranty\" for details.\n"
~"This GDB was configured as \"mingw32\".\nFor bug reporting instructions, please see:\n"
~"<http://www.gnu.org/software/gdb/bugs/>...\n"
~"Reading symbols from D:\\Free Pascal(TP7)\\3.0.4\\primer\\idea\\26\\out\\production\\26\\test26.exe..."
~"done.\n"
(gdb)
^done
(gdb)
&"Function \"D\" not defined.\n"
^done,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="<PENDING>",pending="D:Free Pascal(TP7)\003.0.4primeridea\026\test26.pas:9",times="0",original-location="D:Free Pascal(TP7)\003.0.4primeridea\026\test26.pas:9"}
(gdb)
^done
(gdb)
^done
(gdb)
=thread-group-started,id="i1",pid="7532"
=thread-created,id="1",group-id="i1"
~"[New Thread 7532.0x1100]\n"
^running
*running,thread-id="all"
(gdb)
=library-loaded,id="C:\\Windows\\system32\\ntdll.dll",target-name="C:\\Windows\\system32\\ntdll.dll",host-name="C:\\Windows\\system32\\ntdll.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\Windows\\syswow64\\kernel32.dll",target-name="C:\\Windows\\syswow64\\kernel32.dll",host-name="C:\\Windows\\syswow64\\kernel32.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\Windows\\syswow64\\KernelBase.dll",target-name="C:\\Windows\\syswow64\\KernelBase.dll",host-name="C:\\Windows\\syswow64\\KernelBase.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\Windows\\syswow64\\oleaut32.dll",target-name="C:\\Windows\\syswow64\\oleaut32.dll",host-name="C:\\Windows\\syswow64\\oleaut32.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\Windows\\syswow64\\ole32.dll",target-name="C:\\Windows\\syswow64\\ole32.dll",host-name="C:\\Windows\\syswow64\\ole32.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\Windows\\syswow64\\msvcrt.dll",target-name="C:\\Windows\\syswow64\\msvcrt.dll",host-name="C:\\Windows\\syswow64\\msvcrt.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\Windows\\syswow64\\gdi32.dll",target-name="C:\\Windows\\syswow64\\gdi32.dll",host-name="C:\\Windows\\syswow64\\gdi32.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\Windows\\syswow64\\user32.dll",target-name="C:\\Windows\\syswow64\\user32.dll",host-name="C:\\Windows\\syswow64\\user32.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\Windows\\syswow64\\advapi32.dll",target-name="C:\\Windows\\syswow64\\advapi32.dll",host-name="C:\\Windows\\syswow64\\advapi32.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\Windows\\SysWOW64\\sechost.dll",target-name="C:\\Windows\\SysWOW64\\sechost.dll",host-name="C:\\Windows\\SysWOW64\\sechost.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\Windows\\syswow64\\rpcrt4.dll",target-name="C:\\Windows\\syswow64\\rpcrt4.dll",host-name="C:\\Windows\\syswow64\\rpcrt4.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\Windows\\syswow64\\sspicli.dll",target-name="C:\\Windows\\syswow64\\sspicli.dll",host-name="C:\\Windows\\syswow64\\sspicli.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\Windows\\syswow64\\cryptbase.dll",target-name="C:\\Windows\\syswow64\\cryptbase.dll",host-name="C:\\Windows\\syswow64\\cryptbase.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\Windows\\syswow64\\lpk.dll",target-name="C:\\Windows\\syswow64\\lpk.dll",host-name="C:\\Windows\\syswow64\\lpk.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\Windows\\syswow64\\usp10.dll",target-name="C:\\Windows\\syswow64\\usp10.dll",host-name="C:\\Windows\\syswow64\\usp10.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\Windows\\SysWOW64\\imm32.dll",target-name="C:\\Windows\\SysWOW64\\imm32.dll",host-name="C:\\Windows\\SysWOW64\\imm32.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\Windows\\syswow64\\msctf.dll",target-name="C:\\Windows\\syswow64\\msctf.dll",host-name="C:\\Windows\\syswow64\\msctf.dll",symbols-loaded="0",thread-group="i1"
=thread-exited,id="1",group-id="i1"
=thread-group-exited,id="i1"
*stopped,reason="exited-normally"
>>>> -gdb-exit
(gdb)
^exit
Mirage писал(а):Я так понимаю, дело происходит на винде. Там GDB по умолчанию не стоит
Извиняюсь параметры системы:
ОС, - Windows 7 (64 разрядная)
Free Pascal 3.0.4
IntelliJ IDEA 2018.3.4
Насчет того GDB не установлен, - в этом не уверен.
Ведь дает же он(GDB) свою версию в отладчике:
~"GNU gdb (GDB) 7.2\n"
~"Copyright (C) 2010 Free Software Foundation, Inc.\n"
Или немного по-другому нужно трактовать это сообщение?