Thanks Mikołaj! It works! For anyone who might come across this thread, following gdb usage works.
>>> Build and install the debug build of kicad >>> From windows command prompt execute: $: I:\msys64\mingw64\bin\gdb.exe kicad >>> Then, from the gdb shell add the breakpoint in the required line. Answer 'y' to Make breakpoint pending on future .... (gdb) break I:/msys64/home/Pradeepa/kicad-source/pcbnew/dialogs/dialog_copper_zones.cpp:155 No source file named I:/msys64/home/Pradeepa/kicad-source/pcbnew/dialogs/dialog_copper_zones.cpp. Make breakpoint pending on future shared library load? (y or [n]) y Breakpoint 2 (I:/msys64/home/Pradeepa/kicad-source/pcbnew/dialogs/dialog_copper_zones.cpp:155) pending. >>> Run the program using the following command (gdb) run Now your breakpoint is active and will get triggered accordingly. Cheers! Best Regards, Pradeepa Senanayake. On Thu, Jul 8, 2021 at 4:47 AM Mikołaj Wielgus <wielgusmiko...@gmail.com> wrote: > KiCad loads symbols dynamically on runtime. So Gdb may not see them until > KiCad starts running. > > Setting breakpoints works for me if I reply "y" to the "Make breakpoint > pending on future shared library load? (y or [n])" prompt when the source > file is not found. Gdb should also be able to find the source file if you > set the breakpoint after running then interrupting KiCad. > > Best, > Mikołaj > > > On Wed, Jul 7, 2021 at 3:49 PM pradeepa.kck <pradeepa....@gmail.com> > wrote: > >> Thanks Jon. I tried that and in that case gdb launched kicad, but it >> couldn't find the source file to set a breakpoint. >> >> If someone can give me an example of setting the breakpoint that would be >> great. I tried relative path and full path, but still couldn't set the >> breakpoint in copper_zone_dialog.cpp. >> >> - Pradeepa >> >> Sent on the go with Vodafone >> >> >> -------- Original message -------- >> From: Jon Evans <j...@craftyjon.com> >> Date: 7/7/21 11:28 pm (GMT+10:00) >> To: Pradeepa Senanayake <pradeepa....@gmail.com> >> Cc: KiCad Developers <kicad-developers@lists.launchpad.net> >> Subject: Re: [Kicad-developers] Help needed to configure gdb >> >> gdb ./kicad/kicad is starting KiCad from the build directory. >> >> This isn't a fully-supported way of debugging KiCad, but if you want to >> do this, you must set the environment variable >> >> KICAD_RUN_FROM_BUILD_DIR=1 >> >> Alternatively, since you are running `make install` above, you can use >> gdb to debug KiCad at the installed location, rather than inside the build >> directory. >> >> This will probably be a more reliable mechanism. >> >> -Jon >> >> On Wed, Jul 7, 2021 at 9:24 AM Pradeepa Senanayake < >> pradeepa....@gmail.com> wrote: >> >>> Hello All, >>> >>> Sorry for the long mail. >>> >>> I'm trying to debug one of my changes using gdb and I've run into a >>> roadblock. >>> >>> This is what I did so far, >>> >>> >> Built KiCAD using following commands >>> >>> cmake -DCMAKE_BUILD_TYPE=Debug >>> -G "MSYS Makefiles" >>> -DCMAKE_PREFIX_PATH=/mingw64 >>> -DCMAKE_INSTALL_PREFIX=/mingw64 >>> -DDEFAULT_INSTALL_PATH=/mingw64 >>> -DOCC_INCLUDE_DIR=/mingw64/include/opencascade >>> -DPYTHON_INCLUDE_DIR=/mingw64/include/python3.8 >>> ../../ >>> make -j 4 install >>> >>> >> Started gdb using the following command >>> >>> $: gdb ./kicad/kicad >>> >>> ... >>> ... >>> Reading symbols from ./kicad/kicad.exe... >>> (gdb) run >>> Starting program: >>> I:\msys64\home\Pradeepa\kicad-source\build\debug\kicad\kicad.exe >>> [New Thread 16296.0x41b0] >>> [New Thread 16296.0x3e0c] >>> [New Thread 16296.0x2130] >>> Python path configuration: >>> PYTHONHOME = (not set) >>> PYTHONPATH = (not set) >>> program name = 'python3' >>> isolated = 0 >>> environment = 1 >>> user site = 1 >>> import site = 1 >>> sys._base_executable = >>> 'I:/msys64/home/Pradeepa/kicad-source/build/debug/kicad/kicad.exe' >>> sys.base_prefix = 'D:/a/_temp/msys/msys64/mingw64' >>> sys.base_exec_prefix = 'D:/a/_temp/msys/msys64/mingw64' >>> sys.executable = >>> 'I:/msys64/home/Pradeepa/kicad-source/build/debug/kicad/kicad.exe' >>> sys.prefix = 'D:/a/_temp/msys/msys64/mingw64' >>> sys.exec_prefix = 'D:/a/_temp/msys/msys64/mingw64' >>> sys.path = [ >>> 'D:/a/_temp/msys/msys64/mingw64/lib/python38.zip', >>> 'D:/a/_temp/msys/msys64/mingw64/lib/python3.8', >>> 'D:/a/_temp/msys/msys64/mingw64/lib/python3.8', >>> 'D:/a/_temp/msys/msys64/mingw64/lib/lib-dynload', >>> ] >>> Could not find platform independent libraries <prefix> >>> Could not find platform dependent libraries <exec_prefix> >>> Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>] >>> Fatal Python error: init_fs_encoding: failed to get the Python codec of >>> the filesystem encoding >>> Python runtime state: core initialized >>> ModuleNotFoundError: No module named 'encodings' >>> >>> Current thread 0x00003154 (most recent call first): >>> <no Python frame> >>> warning: Fatal Python error: >>> warning: failed to get the Python codec of the filesystem encoding >>> warning: >>> [Thread 16296.0x3e0c exited with code 1] >>> [Thread 16296.0x2130 exited with code 1] >>> [Thread 16296.0x41b0 exited with code 1] >>> [Inferior 1 (process 16296) exited with code 01] >>> (gdb) >>> >>> I've set the PYTHONHOME to /mingw64 >>> >>> Now I can launch KiCad in gdb. However, it now gives many errors, >>> >>> Ex: can't open file >>> I:\msys64\home\Pradeepa\kicad-source\build\debug\share\kicad\resources\images.tar.gz >>> >>> I feel that it's something to do with paths, however, it's hard to >>> figure out without knowing how everything fits together. >>> >>> Can someone please give me a hand? >>> >>> Thanks! >>> Best Regards, >>> Pradeepa Senanayake. >>> _______________________________________________ >>> Mailing list: https://launchpad.net/~kicad-developers >>> Post to : kicad-developers@lists.launchpad.net >>> Unsubscribe : https://launchpad.net/~kicad-developers >>> More help : https://help.launchpad.net/ListHelp >>> >> _______________________________________________ >> Mailing list: https://launchpad.net/~kicad-developers >> Post to : kicad-developers@lists.launchpad.net >> Unsubscribe : https://launchpad.net/~kicad-developers >> More help : https://help.launchpad.net/ListHelp >> >
_______________________________________________ Mailing list: https://launchpad.net/~kicad-developers Post to : kicad-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~kicad-developers More help : https://help.launchpad.net/ListHelp