Re: [Kicad-developers] Help needed to configure gdb
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 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 > 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 >> Date: 7/7/21 11:28 pm (GMT+10:00) >> To: Pradeepa Senanayake >> Cc: KiCad Developers >> 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/l
Re: [Kicad-developers] Help needed to configure gdb
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 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 > Date: 7/7/21 11:28 pm (GMT+10:00) > To: Pradeepa Senanayake > Cc: KiCad Developers > 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 > 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 >> Could not find platform dependent libraries >> Consider setting $PYTHONHOME to [:] >> 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 0x3154 (most recent call first): >> >> 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 everyt
Re: [Kicad-developers] Help needed to configure gdb
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 Date: 7/7/21 11:28 pm (GMT+10:00) To: Pradeepa Senanayake Cc: KiCad Developers 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 variableKICAD_RUN_FROM_BUILD_DIR=1Alternatively, 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.-JonOn Wed, Jul 7, 2021 at 9:24 AM Pradeepa Senanayake 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 commandscmake -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) runStarting 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 Could not find platform dependent libraries Consider setting $PYTHONHOME to [:]Fatal Python error: init_fs_encoding: failed to get the Python codec of the filesystem encodingPython runtime state: core initializedModuleNotFoundError: No module named 'encodings'Current thread 0x3154 (most recent call first):warning: Fatal Python error:warning: failed to get the Python codec of the filesystem encodingwarning:[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 /mingw64Now 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.gzI 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
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 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 > Could not find platform dependent libraries > Consider setting $PYTHONHOME to [:] > 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 0x3154 (most recent call first): > > 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