Linux Mint 19.3 Tricia
์์ต๋๋ค.
nemo ์์ค ์ฝ๋๋ฅผ ์์ ํ๊ณ ์์ต๋๋ค. ์ฝ๊ฐ์ ๋๋ฒ๊น
๋์์ด ํ์ํฉ๋๋ค. https://forums.linuxmint.com/viewtopic.php?t=235125๋ฅผ ํ์ธํ์ต๋๋ค.
https://stackoverflow.com/questions/31282505/how-to-debug-nemo-linux-mint-file-manager
์ฝ๋๋ฅผ ๋ณ๊ฒฝํ๊ณ ๋๋ฒ๊ทธํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
'์์ค ์ฝ๋ ์ ์ฅ์'๋ฅผ ์ผญ๋๋ค.
git clone https://github.com/linuxmint/nemo
cd nemo
์ด์ ์ฝ๋๋ฅผ ํธ์งํ๊ณ ์์ต๋๋ค. ๋ค๋ฅธ ๋ณ์๋ฅผ ๊ด์ฐฐํ๊ธฐ ์ํด printf( "key_1 %s \n", key_1);
๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
sudo apt-get build-dep nemo
dpkg-buildpackage
cd .. && sudo dpkg -i *.deb
ctrl+alt+backspace
Xorg ๋ค์ ์์
๊ทธ๋ฐ ๋ค์ ๋๋ ์ฌ์ฉํ๊ณ ์์ต๋๋ค
$ gdb nemo
(gdb) r
๊ทธ๋ฐ ๋ค์ printf
์ถ๋ ฅ์ ์ฐพ์ต๋๋ค.
๋ ์ฐ์ํ ์๋ฃจ์
์ด ์๋ค๊ณ ํ์ ํฉ๋๋ค. printf
, dpkg-buildpackage
, ctrl+alt+backspace
์์ด ์ฝ๋๋ฅผ ๋๋ฒ๊ทธํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
@mtwebster ์ ๋ nemo-main.c
๊ฐ ์ฃผ์ ์ง์
์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. VSCode์ ์ค๋จ์ ์ ๋ฃ๊ณ ์ด ํ์ผ์ ์คํํ๋ฉด ์๋ํฉ๋๊น? nemo-main.c
๋ฅผ ์คํํ๋ ค๋ฉด ์ด๋ค ๋ช
๋ น์ ๋ด๋ ค์ผ ํ ๊น์?
์๋ ํ์ธ์ ์ฃ์กํฉ๋๋ค ๋ ๋นจ๋ฆฌ ๋ต์ฅ์ ๋๋ฆฌ๊ณ ์ถ์์ต๋๋ค.
๋น์ ์ด ๊ตฌ์ถํ๋ ๋ฐฉ์์ ๊ด์ฐฎ์ต๋๋ค. ์ด๊ธฐ ๋น๋ ํ ์๊ฐ์ ์ ์ฝํ๊ธฐ ์ํด dpkg-buildpackage๋ฅผ ์ฌ์ฉํ์ฌ ์ค์นํ๊ณ ๋์ ๋ค์์ ์คํํฉ๋๋ค.
sudo ninja -C debian/build install
-- ๋ค์ ๋ฒ ์ฌ์ปดํ์ผ - ํจ์ฌ ๋น ๋ฅด๊ณ ๋ค์ ์ค์นํ ํจํค์ง๊ฐ ์์ต๋๋ค(์์คํ
์ ์ค์ ๋ก ์ ๊ฒฝ ์ฐ์ง ์๊ณ ๊ธฐ์กด ํ์ผ์ ๋ณต์ฌํ๊ณ ์์). ๋๋ฒ๊ทธ ์ถ๋ ฅ ๋ฑ ๊ทธ๋ฅ ๋ด๊ฐ ์ฌ์ฉํ๋ (๋น์ ์ด ๋ dpkg-buildpackage์๋ฅผ ์ฌ์ฉํ์ฌ ๋ค๋ฅธ '์ง์ง'๋น๋๋ฅผ ์ํ ํ ๋ ๋น๋ ํด๋๋ฅผ ์ฒญ์ํ๊ธฐ ์ํด sudo๋ฅผ ์ฌ์ฉํด์ผํ๋ค๋ ์ ์ ์ดํด sudo git clean -fdx
-์ด ๋ฐํ์์ ์์ ์ํ).
๋๋ ์์ ํ IDE์์ ๊ฐ๋ฐ์ ์๋ํ ์ ์ด ์์ผ๋ฏ๋ก ์ค๋จ์ ์ด ์ด๋ป๊ฒ ์๋ํ๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๊ฐ์ฅ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ ์ค์งํ๋ ค๋ ์์น์ G_BREAKPOINT()
๋ฅผ ์ฝ์
ํ๋ ๊ฒ์
๋๋ค. ๊ทธ๋ฌ๋ฉด gdb์์ ํ์ํ ๋ชจ๋ ์์
์ ์ํํ ์ ์์ต๋๋ค.
nemo๋ฅผ ๋ค์ ์์ํ๊ธฐ ์ํด ์ธ์
์ ๋ค์ ์์ํ ํ์ ๊ฐ ์์ต๋๋ค . ๋ค์ ์ค ํ๋๋ฅผ ์ํํ๋ฉด ๋ฉ๋๋ค.
nemo --quit
๋๋
killall nemo
๋ฐํ ํ๋ฉด ์์ด์ฝ์ ๋๋ฒ๊ทธํ๋ ค๋ฉด nemo-desktop
๋ก ์คํ๋๋ฏ๋ก ๋์ ์ข
๋ฃ/๋ค์ ์์ํด์ผ ํฉ๋๋ค. (์ฒ์์๋ ๋ ๋ฒ ์ข
๋ฃ ํด์ผ ํฉ๋๋ค. ์ธ์
๊ด๋ฆฌ์๋ ์ธ์
์ด ์ข
๋ฃ๋ ๊ฒฝ์ฐ ์ธ์
์ด ์์๋ ํ ์ ํํ ํ ๋ฒ ๋ค์ ์์ํ๋ ค๊ณ ์๋ํฉ๋๋ค.)
๋๋ ์ฃผ๋ก print ๋ฌธ์ ์ฌ์ฉํ๊ฑฐ๋ ๋ ๋ณต์กํ ์์ ์ ์ํํด์ผ ํ๋ ๊ฒฝ์ฐ gdb๋ฅผ ์ฌ์ฉํฉ๋๋ค(๋ง์ ๋ฌธ์๊ฐ ์์ต๋๋ค). ์์ ํ๊ฑฐ๋ ์์ ํ๋ ค๋ ๋์์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. Valgrind๋ ๋ฉ๋ชจ๋ฆฌ ๋์๋ฅผ ์ฐพ๋ ๋ฐ ์ข์ ๋๊ตฌ์ ๋๋ค . https://wiki.gnome.org/Valgrind๋ฅผ ํ์ธ
glib/gtk/gobject ๊ฒฝ๊ณ ๊ฐ ํ์๋๋ฉด G_DEBUG=fatal_warnings gdb
๋ฅผ ์คํํ์ฌ gdb๋ฅผ ์์ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ฉด ํด๋น ๊ฒฝ๊ณ ๊ฐ ์ค๋จ๋๊ณ ๊ณ์ ์ง๋๊ฐ ์ ์์ต๋๋ค.
์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ - https://developer.gnome.org/glib/stable ์ ๊ฑฐ์ ๋ชจ๋ ๊ฒ์ด nemo(gtk3๊ณผ ํจ๊ป)์ ๊ธฐ๋ฐ์ ๋๊ณ ์์ต๋๋ค. - ์ ๋ ์ผ๋ฐ์ ์ผ๋ก 'devhelp' ํ๋ก๊ทธ๋จ์ -doc ํจํค์ง์ ํจ๊ป ์ค์นํฉ๋๋ค. ์น ๋ฌธ์๋ฅผ ๊ฒ์ํ๋ ๊ฒ๋ณด๋ค ๋น ๋ฅด๊ฒ ์ฐพ์ต๋๋ค.
@blueray453 ์ง๋ฌธ
@mtwebster ์ฌ๋ฐ๋ฅธ ๋ฐฉํฅ์ผ๋ก
@icarter09 ์ธ์์ด
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์๋ ํ์ธ์ ์ฃ์กํฉ๋๋ค ๋ ๋นจ๋ฆฌ ๋ต์ฅ์ ๋๋ฆฌ๊ณ ์ถ์์ต๋๋ค.
๋น์ ์ด ๊ตฌ์ถํ๋ ๋ฐฉ์์ ๊ด์ฐฎ์ต๋๋ค. ์ด๊ธฐ ๋น๋ ํ ์๊ฐ์ ์ ์ฝํ๊ธฐ ์ํด dpkg-buildpackage๋ฅผ ์ฌ์ฉํ์ฌ ์ค์นํ๊ณ ๋์ ๋ค์์ ์คํํฉ๋๋ค.
sudo ninja -C debian/build install
-- ๋ค์ ๋ฒ ์ฌ์ปดํ์ผ - ํจ์ฌ ๋น ๋ฅด๊ณ ๋ค์ ์ค์นํ ํจํค์ง๊ฐ ์์ต๋๋ค(์์คํ ์ ์ค์ ๋ก ์ ๊ฒฝ ์ฐ์ง ์๊ณ ๊ธฐ์กด ํ์ผ์ ๋ณต์ฌํ๊ณ ์์). ๋๋ฒ๊ทธ ์ถ๋ ฅ ๋ฑ ๊ทธ๋ฅ ๋ด๊ฐ ์ฌ์ฉํ๋ (๋น์ ์ด ๋ dpkg-buildpackage์๋ฅผ ์ฌ์ฉํ์ฌ ๋ค๋ฅธ '์ง์ง'๋น๋๋ฅผ ์ํ ํ ๋ ๋น๋ ํด๋๋ฅผ ์ฒญ์ํ๊ธฐ ์ํด sudo๋ฅผ ์ฌ์ฉํด์ผํ๋ค๋ ์ ์ ์ดํด
sudo git clean -fdx
-์ด ๋ฐํ์์ ์์ ์ํ).๋๋ ์์ ํ IDE์์ ๊ฐ๋ฐ์ ์๋ํ ์ ์ด ์์ผ๋ฏ๋ก ์ค๋จ์ ์ด ์ด๋ป๊ฒ ์๋ํ๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๊ฐ์ฅ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ ์ค์งํ๋ ค๋ ์์น์
G_BREAKPOINT()
๋ฅผ ์ฝ์ ํ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ฉด gdb์์ ํ์ํ ๋ชจ๋ ์์ ์ ์ํํ ์ ์์ต๋๋ค.nemo๋ฅผ ๋ค์ ์์ํ๊ธฐ ์ํด ์ธ์ ์ ๋ค์ ์์ํ ํ์ ๊ฐ ์์ต๋๋ค . ๋ค์ ์ค ํ๋๋ฅผ ์ํํ๋ฉด ๋ฉ๋๋ค.
nemo --quit
๋๋
killall nemo
๋ฐํ ํ๋ฉด ์์ด์ฝ์ ๋๋ฒ๊ทธํ๋ ค๋ฉด
nemo-desktop
๋ก ์คํ๋๋ฏ๋ก ๋์ ์ข ๋ฃ/๋ค์ ์์ํด์ผ ํฉ๋๋ค. (์ฒ์์๋ ๋ ๋ฒ ์ข ๋ฃ ํด์ผ ํฉ๋๋ค. ์ธ์ ๊ด๋ฆฌ์๋ ์ธ์ ์ด ์ข ๋ฃ๋ ๊ฒฝ์ฐ ์ธ์ ์ด ์์๋ ํ ์ ํํ ํ ๋ฒ ๋ค์ ์์ํ๋ ค๊ณ ์๋ํฉ๋๋ค.)๋๋ ์ฃผ๋ก print ๋ฌธ์ ์ฌ์ฉํ๊ฑฐ๋ ๋ ๋ณต์กํ ์์ ์ ์ํํด์ผ ํ๋ ๊ฒฝ์ฐ gdb๋ฅผ ์ฌ์ฉํฉ๋๋ค(๋ง์ ๋ฌธ์๊ฐ ์์ต๋๋ค). ์์ ํ๊ฑฐ๋ ์์ ํ๋ ค๋ ๋์์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. Valgrind๋ ๋ฉ๋ชจ๋ฆฌ ๋์๋ฅผ ์ฐพ๋ ๋ฐ ์ข์ ๋๊ตฌ์ ๋๋ค . https://wiki.gnome.org/Valgrind๋ฅผ ํ์ธ
glib/gtk/gobject ๊ฒฝ๊ณ ๊ฐ ํ์๋๋ฉด
G_DEBUG=fatal_warnings gdb
๋ฅผ ์คํํ์ฌ gdb๋ฅผ ์์ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ฉด ํด๋น ๊ฒฝ๊ณ ๊ฐ ์ค๋จ๋๊ณ ๊ณ์ ์ง๋๊ฐ ์ ์์ต๋๋ค.์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ - https://developer.gnome.org/glib/stable ์ ๊ฑฐ์ ๋ชจ๋ ๊ฒ์ด nemo(gtk3๊ณผ ํจ๊ป)์ ๊ธฐ๋ฐ์ ๋๊ณ ์์ต๋๋ค. - ์ ๋ ์ผ๋ฐ์ ์ผ๋ก 'devhelp' ํ๋ก๊ทธ๋จ์ -doc ํจํค์ง์ ํจ๊ป ์ค์นํฉ๋๋ค. ์น ๋ฌธ์๋ฅผ ๊ฒ์ํ๋ ๊ฒ๋ณด๋ค ๋น ๋ฅด๊ฒ ์ฐพ์ต๋๋ค.