{"id":7862,"date":"2022-12-29T22:40:32","date_gmt":"2022-12-29T20:40:32","guid":{"rendered":"https:\/\/blue.pri.ee\/ttu\/?page_id=7862"},"modified":"2025-02-14T17:15:38","modified_gmt":"2025-02-14T15:15:38","slug":"siluri-kasutamine-geanys","status":"publish","type":"page","link":"https:\/\/blue.pri.ee\/ttu\/koodimisjuhendid\/siluri-kasutamine-geanys\/","title":{"rendered":"Siluri kasutamine Geanys"},"content":{"rendered":"<p>Silur ehk <em>debugger<\/em> on t\u00f6\u00f6riist, millega saab koodi jooksutada rida-rea haaval ning anal\u00fc\u00fcsida programmi, sh selle muutujate v\u00e4\u00e4rtusi, funktsioonide pinu (<em>function call stack<\/em>) jpm.<\/p>\n<p>Sellist liiki t\u00f6\u00f6vahendid on tarkvara arenduses igap\u00e4evased ning nende kasutama \u00f5ppimine lihtsustab oluliselt tarkvara loomist. Enamik koodiredaktoreid tuleb kas siluritega juba kohe kaasa pakendatult (nt CLion, Visual Studio jt) v\u00f5i saab neid juurde lisada (nt Geany, Visual Studio Code). Sageli on silurid lihtsalt eraldi programmid (nt GDB ehk GNU Debugger), millele pakutakse lihtsalt liidest koodiredaktori sisse.<\/p>\n<p>Geany puhul lisame me pistikprogrammi (<em>plugin<\/em>), mis annab meile visuaalse kasutajaliidese kasutamaks k\u00e4surea p\u00f5hist silurit GDB.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/blue.pri.ee\/ttu\/koodimisjuhendid\/siluri-kasutamine-geanys\/#Seadistamine\" >Seadistamine<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/blue.pri.ee\/ttu\/koodimisjuhendid\/siluri-kasutamine-geanys\/#Siluri_pistikprogrammi_paigaldus\" >Siluri pistikprogrammi paigaldus<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/blue.pri.ee\/ttu\/koodimisjuhendid\/siluri-kasutamine-geanys\/#Siluri_pistikprogrammi_aktiveerimine\" >Siluri pistikprogrammi aktiveerimine<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/blue.pri.ee\/ttu\/koodimisjuhendid\/siluri-kasutamine-geanys\/#Kompilaatori_seadistamine\" >Kompilaatori seadistamine<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/blue.pri.ee\/ttu\/koodimisjuhendid\/siluri-kasutamine-geanys\/#Siluri_kiirklahvide_seadistamine\" >Siluri kiirklahvide seadistamine<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/blue.pri.ee\/ttu\/koodimisjuhendid\/siluri-kasutamine-geanys\/#Siluri_kasutajaliides\" >Siluri kasutajaliides<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/blue.pri.ee\/ttu\/koodimisjuhendid\/siluri-kasutamine-geanys\/#Programmi_silumine\" >Programmi silumine<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/blue.pri.ee\/ttu\/koodimisjuhendid\/siluri-kasutamine-geanys\/#1_Vali_silutav_programm\" >1. Vali silutav programm<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/blue.pri.ee\/ttu\/koodimisjuhendid\/siluri-kasutamine-geanys\/#2_Maara_katkepunkt_voi_katkepunktid\" >2. M\u00e4\u00e4ra katkepunkt v\u00f5i katkepunktid<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/blue.pri.ee\/ttu\/koodimisjuhendid\/siluri-kasutamine-geanys\/#3_Kaivita_programm_siluris\" >3. K\u00e4ivita programm siluris<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/blue.pri.ee\/ttu\/koodimisjuhendid\/siluri-kasutamine-geanys\/#4_Samm-sammuline_labikaik\" >4. Samm-sammuline l\u00e4bik\u00e4ik<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/blue.pri.ee\/ttu\/koodimisjuhendid\/siluri-kasutamine-geanys\/#Koodist_otse_vaartuste_vaatamine\" >Koodist otse v\u00e4\u00e4rtuste vaatamine<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/blue.pri.ee\/ttu\/koodimisjuhendid\/siluri-kasutamine-geanys\/#Watch_ehk_vaatenimekiri\" >Watch ehk vaatenimekiri<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/blue.pri.ee\/ttu\/koodimisjuhendid\/siluri-kasutamine-geanys\/#Kasureaargumentide_silumine\" >K\u00e4sureaargumentide silumine<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/blue.pri.ee\/ttu\/koodimisjuhendid\/siluri-kasutamine-geanys\/#Windows\" >Windows<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Seadistamine\"><\/span>Seadistamine<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Enne siluri kasutusele v\u00f5ttu tuleb teha paar \u00fchekordset liigutust selle seadistamiseks. Seadistuse on vajalik sinu enda arvutis. Kooliarvutites on seadistus juba tehtud.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Siluri_pistikprogrammi_paigaldus\"><\/span>Siluri pistikprogrammi paigaldus<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><em>Kui j\u00e4lgisid meie poolt pakutud Geany paigaldusjuhendit on sul juba k\u00f5ik tehtud ja v\u00f5id selle osa vahele j\u00e4tta. Mine j\u00e4rgmise peat\u00fcki juurde (siluri aktiveerimine)!<\/em><\/p>\n<p>Kui ei, siis paigalda endale pakett nimega <span class=\"lang:default highlight:0 decode:true crayon-inline\">geany-plugin-debugger<\/span>.\u00a0\u00a0Kasutades \u00fcksk\u00f5ik millist Ubuntu p\u00f5hist Linuxit tuleks selleks k\u00e4ivitada j\u00e4rgnev k\u00e4sk:<\/p>\n<pre class=\"toolbar:2 lang:default highlight:0 decode:true\">sudo apt install geany-plugin-debugger<\/pre>\n<p>Paketi v\u00f5id paigaldada eraldi v\u00f5i siis koost teiste Geany pistikprogrammidega pakist <span class=\"lang:default highlight:0 decode:true crayon-inline\">geany-plugins<\/span> .<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Siluri_pistikprogrammi_aktiveerimine\"><\/span>Siluri pistikprogrammi aktiveerimine<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><em>M\u00e4rkus: Kooliarvutis on silur juba aktiveeritud.<\/em><\/p>\n<p>Aktiveerimaks silurit mine Geany sees men\u00fc\u00fcsse <strong>Tools -&gt; Plugins.<\/strong><\/p>\n<p><a href=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_1_tools.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-7864\" src=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_1_tools.png\" alt=\"\" width=\"241\" height=\"180\" \/><\/a><\/p>\n<p>Otsi \u00fcles\u00a0<strong>Debugger<\/strong> ning pane sellele linnuke ette<\/p>\n<p><a href=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_2_plugins.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-7865\" src=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_2_plugins.png\" alt=\"\" width=\"511\" height=\"488\" srcset=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_2_plugins.png 511w, https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_2_plugins-300x286.png 300w\" sizes=\"auto, (max-width: 511px) 100vw, 511px\" \/><\/a><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Kompilaatori_seadistamine\"><\/span>Kompilaatori seadistamine<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><em>M\u00e4rkus: Kooliarvutis on kompilaator juba seadistatud.<\/em><\/p>\n<p>Selleks, et silur saaks t\u00f6\u00f6tada ning su programmist aru tuleb meil kompilaatorile anda t\u00e4iendav k\u00e4sk <span class=\"lang:default highlight:0 decode:true crayon-inline\">-g<\/span> .\u00a0 Antud k\u00e4suga lisatakse su programmi kompileeritud versioonile kaasa silumiseks vajaminev lisainformatsioon. Selle tulemusena l\u00e4heb programm oluliselt suuremaks ja aeglasemaks, kuid \u00fchtlasi v\u00f5imaldab see meil ka silureid ja erinevaid tarkvara anal\u00fc\u00fcsi rakendusi kasutada. \u00c4ra unusta see lipp v\u00e4lja l\u00fclitada kui peaksid kliendile tarkvara \u00fcle andma!<\/p>\n<p><em>M\u00e4rkus: j\u00e4rgnevat saab teha ka valides men\u00fc\u00fcst Build -&gt; Set build commands, kuid siis peab olema .c koodifail parasjagu redaktoris avatud. Juhend on koostatud sedasi, et seda pole vaja teha.<\/em><\/p>\n<p>Avame C koodifailidega seotud Geany konfiguratsioonifaili <strong>Tools -&gt; Configuration files -&gt; Filetype Configuration -&gt; Programming Languages -&gt; filetypes.c<\/strong><\/p>\n<p><a href=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_3_filetypes.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-7866\" src=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_3_filetypes.png\" alt=\"\" width=\"921\" height=\"324\" srcset=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_3_filetypes.png 921w, https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_3_filetypes-300x106.png 300w, https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_3_filetypes-768x270.png 768w\" sizes=\"auto, (max-width: 921px) 100vw, 921px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Avanenud konfiguratsioonifaili reale FT_01_FM tuleks lisada kompileerimise argument <span class=\"lang:default highlight:0 decode:true crayon-inline \">-g<\/span> . Joonisel on see punasega alla joonitud. Veendu, et enne ja p\u00e4rast lisatud argumenti oleksid t\u00fchikud. Antud argumenti ei tohi kirjutada <span class=\"lang:default highlight:0 decode:true crayon-inline \">-o<\/span>\u00a0 j\u00e4rele.<\/p>\n<p>N\u00e4ide minu konfiguratsioonifailist p\u00e4rast lisamist (punane on lisatud argumendil).<\/p>\n<p><a href=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_4_add_g.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-7867\" src=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_4_add_g.png\" alt=\"\" width=\"723\" height=\"152\" srcset=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_4_add_g.png 723w, https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_4_add_g-300x63.png 300w\" sizes=\"auto, (max-width: 723px) 100vw, 723px\" \/><\/a><\/p>\n<p>Kopeeritaval kujul saad k\u00f5ik selle j\u00e4rgnevast kastist. M\u00e4rka, et mul on ka t\u00e4iendavaid argumente kasutusel nagu <span class=\"lang:default highlight:0 decode:true crayon-inline\">-Wextra<\/span>\u00a0 ja <span class=\"lang:default highlight:0 decode:true crayon-inline \">-Wconversion<\/span>\u00a0 (soovi korral v\u00f5id need eemaldada)<\/p>\n<pre class=\"toolbar:2 lang:default highlight:0 decode:true \">[build-menu]\r\nFT_01_LB=_Build\r\nFT_01_CM=gcc -g -Wall -Wextra -Wconversion -o \"%e\" \"%f\" -lm\r\nFT_01_WD=\r\n<\/pre>\n<h3><span class=\"ez-toc-section\" id=\"Siluri_kiirklahvide_seadistamine\"><\/span>Siluri kiirklahvide seadistamine<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><em>Selle peat\u00fckiga sa ilmselt veel koheselt midagi tarka teha ei oska. K\u00fcll aga v\u00f5id tahta siia tagasi tulla p\u00e4rast seda kui oled juba m\u00f5ne korra silurit kasutada proovinud.<\/em><\/p>\n<p>Siluril pole vaikimisi kiirklahve seadistatud (ehk n\u00e4iteks F5 k\u00e4ivitab j\u00e4tkuvalt programmi normaalselt, mitte koos siluriga. P\u00e4rast seda kui oled aru saanud mida silur teeb ja kuidas tahad sa ilmselt m\u00f5ne t\u00e4iendava klahvikombinatsiooni endale s\u00e4ttida. Selleks vali\u00a0<strong>Edit -&gt; Preferences.<\/strong> Avanenud seadistuste aknast vali\u00a0<strong>Keybindings<\/strong> ning keri alla kuniks j\u00f5uad Debugger alamjaotuseni. Siin saad endale klahvikombinatsioone luua siluri kasutamiseks.<\/p>\n<p><a href=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_5_keybindings.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-7868\" src=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_5_keybindings.png\" alt=\"\" width=\"798\" height=\"598\" srcset=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_5_keybindings.png 798w, https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_5_keybindings-300x225.png 300w, https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_5_keybindings-768x576.png 768w\" sizes=\"auto, (max-width: 798px) 100vw, 798px\" \/><\/a>M\u00f5ned huvipakkuvatest v\u00f5iksid olla Run \/ Continue, Step into, Step over, Steo out, Run to cursor jne.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Siluri_kasutajaliides\"><\/span>Siluri kasutajaliides<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>P\u00e4rast pistikprogrammi lubamist tekib alla t\u00e4iendav aken nimega\u00a0<strong>Debug<\/strong>. Avades selle kaardi kuvatakse j\u00e4rgnev vaade<\/p>\n<p><a href=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_6_ui-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-7890\" src=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_6_ui-1.png\" alt=\"\" width=\"1078\" height=\"326\" srcset=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_6_ui-1.png 1078w, https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_6_ui-1-300x91.png 300w, https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_6_ui-1-1024x310.png 1024w, https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_6_ui-1-768x232.png 768w\" sizes=\"auto, (max-width: 1078px) 100vw, 1078px\" \/><\/a><\/p>\n<p>1 &#8211; Kasti\u00a0<strong>Target<\/strong> tuleb m\u00e4\u00e4rata programm, mida soovid siluda. Seda on vaja iga kord uuendada kui soovid m\u00f5nda teist koodifaili siluda. Selle all paiknevad programmile antavad k\u00e4surea argumendid.<\/p>\n<p>2 &#8211; Siin on programmi jooksutamise kontrollmehhanismid &#8211; k\u00e4ivitamine, peatamine, samm-haaval l\u00e4bimine jne.<\/p>\n<p>3 &#8211; Siin paikenvad erinevad vaated kus saab n\u00e4hta infot jooksva programmi kohta<\/p>\n<ul>\n<li>Target kirjeldab \u00e4ra jooksutatava programmi ja selle keskkonnamuutujad ning k\u00e4surea argumendid<\/li>\n<li>Breakpoints n\u00e4itab \u00e4ra read mille peal kood seisma j\u00e4\u00e4b<\/li>\n<li>Autos n\u00e4itab automaatselt hetkel skoobis olevate muutujate v\u00e4\u00e4rtusi (nt funktsioonis olles n\u00e4itab funktsiooni lokaalmuutujaid).<\/li>\n<li>Watch alla saad lisada muutujaid topeltkl\u00f5psuga Autos olevale muutuja nimele v\u00f5i kirjutades nime v\u00f5i valemi t\u00e4pselt sisse.<\/li>\n<li>Call stack n\u00e4itab funktsioonide pinu ehk siis alates mainist mis funktsiooni sees oled. Samuti n\u00e4eb mitmel\u00f5imuliste (<em>multithreaded<\/em>) programmide puhul teisi l\u00f5ime (<em>thread<\/em>)<\/li>\n<li>Debug Terminal n\u00e4itab tavap\u00e4rast terminaliakent. Sinna saab ka teksti kirjutada.<\/li>\n<li>Debugger Messages n\u00e4itab GDB v\u00e4ljundit.<\/li>\n<\/ul>\n<p>4 &#8211; <strong>See on \u00fcks oluline nupuke<\/strong>, millega saab all oleva vaate kaheks t\u00fckis teha. See on t\u00e4htis kuna nii on mugavam \u00fcheaegselt j\u00e4lgida muutujate v\u00e4\u00e4rtusi ja n\u00e4ha programmi v\u00e4ljundit, vastasel juhul asuvad need erinevatel kaartidel ja nende vahel tuleb programmi t\u00f6\u00f6 jooksul kl\u00f5psida edasi-tagasi.<\/p>\n<p>Alternatiivne UI kui see on kaheks jagatud n\u00e4eb v\u00e4lja j\u00e4rgnev<\/p>\n<p><a href=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_6_2_ui_split.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-7909 size-full\" src=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_6_2_ui_split.png\" alt=\"\" width=\"948\" height=\"297\" srcset=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_6_2_ui_split.png 948w, https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_6_2_ui_split-300x94.png 300w, https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_6_2_ui_split-768x241.png 768w\" sizes=\"auto, (max-width: 948px) 100vw, 948px\" \/><\/a><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Programmi_silumine\"><\/span>Programmi silumine<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Siluri kasutamiseks tuleks esmalt selgeks teha kus kohas midagi asub ehk tutvuda kasutajaliidesega.<\/p>\n<p>N\u00e4idises kasutatud koodil\u00f5igu leiad siit: <strong><a href=\"https:\/\/blue.pri.ee\/ttu\/files\/iax0584\/demokood\/demo_debugger.c\">https:\/\/blue.pri.ee\/ttu\/files\/iax0584\/demokood\/demo_debugger.c<\/a><\/strong><\/p>\n<h3><span class=\"ez-toc-section\" id=\"1_Vali_silutav_programm\"><\/span>1. Vali silutav programm<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Esimene samm <strong>iga programmi<\/strong> silumisel on silurile jooksutatava programmi asukoha seadistamine. <strong>Silur ei \u00fcrita automaatselt seda koodifaili siluda mis sul lahti on!<\/strong> Tavap\u00e4raselt v\u00f5ib \u00fcks programm koosneda sadadest koodifailidest, millest vaid \u00fches asub main funktsioon &#8211; seet\u00f5ttu tuleb silurile ette n\u00e4idata kus asub silutav programm.<\/p>\n<p>Mine paanile\u00a0<strong>Target<\/strong> ja kliki ikoonil\u00a0<strong>Browse<\/strong>. Seej\u00e4rel otsi \u00fcles oma programm mida soovid siluda. Programmi asukoht peab ilmuma selle k\u00f5rval olevasse tekstikasti (<strong><span style=\"color: #ff0000;\">.c failid ei ole programmid!<\/span>)<\/strong><\/p>\n<p><a href=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_7_target.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-7891\" src=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_7_target.png\" alt=\"\" width=\"465\" height=\"310\" srcset=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_7_target.png 465w, https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_7_target-300x200.png 300w\" sizes=\"auto, (max-width: 465px) 100vw, 465px\" \/><\/a><\/p>\n<p>Siia saad lisada ka programmile vajaminevaid k\u00e4surea argumente ja keskkonnamuutujaid.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"2_Maara_katkepunkt_voi_katkepunktid\"><\/span>2. M\u00e4\u00e4ra katkepunkt v\u00f5i katkepunktid<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Teisena tuleb meil m\u00e4\u00e4rata katkepunkt <em>(breakpoint),<\/em> kus soovime, et programm j\u00e4\u00e4ks automaatselt seisma. Selliseid punkte v\u00f5ime lisada rohkem kui \u00fche ning kui programm on \u00fcle mitme faili, siis neid saab lisada erinevatesse failidesse. P\u00e4rast k\u00e4ivitamist jookseb programm senikaua kuniks kohtab esimest meie poolt m\u00e4rgitud katkepunkti ning seej\u00e4rel l\u00e4heb \u00fcle silumisre\u017eiimi.<\/p>\n<p>Katkepunkti m\u00e4\u00e4ramiseks kl\u00f5psa rea numbri j\u00e4rel olevale t\u00fchjale alale. Sinna tekkinud punane t\u00e4pp t\u00e4histab katkepunkti. N\u00e4iteks antud programmi on lisatud reale 34 katkepunkt.<\/p>\n<p><a href=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_8_brkpnt.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-7887\" src=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_8_brkpnt.png\" alt=\"\" width=\"574\" height=\"325\" srcset=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_8_brkpnt.png 574w, https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_8_brkpnt-300x170.png 300w\" sizes=\"auto, (max-width: 574px) 100vw, 574px\" \/><\/a><\/p>\n<p>Katkepunkte saab lisada ka kiirklahvidega.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"3_Kaivita_programm_siluris\"><\/span>3. K\u00e4ivita programm siluris<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Programmi t\u00f6\u00f6 kontrollimiseks on siluri akna paremal k\u00fcljel. Vajuta sealt\u00a0<strong>Run<\/strong> nuppu. Peatamiseks vajuta\u00a0<strong>Stop<\/strong> nuppu.<\/p>\n<p>P\u00e4rast k\u00e4ivitumist jookseb silur kas esimese katkepunktini v\u00f5i sinnamaani kus ta peab kasutajalt sisestust k\u00fcsima. Olles kahepaanilises vaates on sul vasakul pool peamiselt programmi info, paremal pool terminalid ja funktsioonide informatsioon.<\/p>\n<p><a href=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_9_started.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-7905\" src=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_9_started.png\" alt=\"\" width=\"946\" height=\"299\" srcset=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_9_started.png 946w, https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_9_started-300x95.png 300w, https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_9_started-768x243.png 768w\" sizes=\"auto, (max-width: 946px) 100vw, 946px\" \/><\/a><\/p>\n<p>Hetkel peatus programm kasutaja sisestuse juures. Meie poolt pandud katkepunktini ei ole veel j\u00f5utud! Sinna j\u00f5utakse p\u00e4rast <span class=\"lang:default highlight:0 decode:true crayon-inline \">scanf<\/span>\u00a0 t\u00e4itmist, seega peame terminali andma sisendi.<\/p>\n<p>Olles numbri \u00e4ra kirjutanud j\u00e4\u00e4b meie programm uuesti seisma. Seda seet\u00f5ttu, et n\u00fc\u00fcd j\u00f5udsime oma katkepunktini. Kui vaatad vasakus paanis Autos kaarti n\u00e4ed, et sinna on automaatselt tekkinud funktsiooni lokaalmuutujad. Paremal pool on aga avanenud sulle juhtimiseks kaustatavad kontrollnupud.<\/p>\n<p><a href=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_10_dbg_mode.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-7907 size-full\" src=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_10_dbg_mode.png\" alt=\"\" width=\"944\" height=\"294\" srcset=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_10_dbg_mode.png 944w, https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_10_dbg_mode-300x93.png 300w, https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_10_dbg_mode-768x239.png 768w\" sizes=\"auto, (max-width: 944px) 100vw, 944px\" \/><\/a><\/p>\n<h3><span class=\"ez-toc-section\" id=\"4_Samm-sammuline_labikaik\"><\/span>4. Samm-sammuline l\u00e4bik\u00e4ik<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Olles j\u00f5udnud katkepunktini saad programmi juhtida samm-sammu haaval. Selleks on k\u00f5rval nupud:<\/p>\n<ul>\n<li><strong>Continue<\/strong> &#8211; programm j\u00e4tkab tavare\u017eiimis kuniks kohtab uuesti katkepunkti. Vajadusel peatutakse kasutajalt sisestuse k\u00fcsimiseks, kuid silumisre\u017eiim aktiveerub vaid siis, kui satud j\u00e4rgmisse katkepunkti.<\/li>\n<li><strong>Restart<\/strong> &#8211; k\u00e4ivitab programmi uuesti<\/li>\n<li><strong>Stop<\/strong> &#8211; peatab programmi<\/li>\n<li><strong>Step over<\/strong> &#8211; Astub funktsioonist \u00fcle (funktsiooni sisu t\u00e4idetakse, kuid silur ise sinna sisse samm-sammu haaval k\u00e4ske t\u00e4itma ei l\u00e4he)<\/li>\n<li><strong>Step into<\/strong> &#8211; Astub funktsiooni sisse mida parasjagu kutsud &#8211; saad kutsutava funktsiooni sisu samuti samm-sammu haaval l\u00e4bi k\u00e4ia.\u00a0<strong>NB! \u00c4ra kasuta standardteekides olevate funktsioonide jaoks (nt printf, scanf, &#8230;)<\/strong><\/li>\n<li><strong>Step out<\/strong> &#8211; astub praegusest funktsioonist v\u00e4lja ja j\u00e4tkab silumist eelnevast funktsioonist kust praegune v\u00e4lja kutsuti<\/li>\n<li><strong>Run to cursor<\/strong> &#8211; Saad koodiaknast liigutada kursori uude asukohta, kus tahad, et programm seisma j\u00e4\u00e4ks. Kuni sinnamaani l\u00e4heb programm tavare\u017eiimi tagasi. Tegu on sisuliselt automaatse katkepunktiga. NB! Kui programm kohtab enne kursori asukohta m\u00f5nda teist katkepunkti, siis j\u00e4\u00e4b ta ka seal seisma.<\/li>\n<\/ul>\n<p>Hoiatus! Ekraanile tr\u00fckkimine on puhverdatud operatsioon. St iga <span class=\"lang:default highlight:0 decode:true crayon-inline \">printf<\/span>\u00a0 peale automaatselt n\u00e4htavat v\u00e4ljundit ei teki! Reeglina kuvatakse v\u00e4ljund ekraanile rea kaupa &#8211; st j\u00f5udes rea l\u00f5pus\u00fcmbolini kuvatakse kogu rida korraga.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Koodist_otse_vaartuste_vaatamine\"><\/span>Koodist otse v\u00e4\u00e4rtuste vaatamine<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Kui programm on silumisre\u017eiimis saame me koodiaknas minna \u00fcksk\u00f5ik millise muutuja v\u00f5i funktsiooni kohale hiirega <strong>mis\u00a0asub meie skoobis.\u00a0<\/strong>Sellisel juhul n\u00e4idatakse kohe keset koodiakent selle muutuja v\u00f5i funktsiooni andmed.<\/p>\n<p><a href=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_11_hover_inspect.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-7898\" src=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_11_hover_inspect.png\" alt=\"\" width=\"472\" height=\"175\" srcset=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_11_hover_inspect.png 472w, https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_11_hover_inspect-300x111.png 300w\" sizes=\"auto, (max-width: 472px) 100vw, 472px\" \/><\/a><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Watch_ehk_vaatenimekiri\"><\/span>Watch ehk vaatenimekiri<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Selleks, et j\u00e4lgida kindlaid muutujaid pidevalt saab luua vaatenimekirja <strong>Watch<\/strong> kaardi alla. Sinna saab lisada asju kahte moodi<\/p>\n<ol>\n<li>Jooksvalt programmi l\u00e4bides kui soovitav muutuja on n\u00e4htav saad\u00a0<strong>Autos<\/strong> kaardi all teha selle rea peal topeltkl\u00f5psu<\/li>\n<li>Olles\u00a0<strong>Watch<\/strong> kaardil saad p\u00e4rast viimast olemasolevat rida kirjutada name kohta soovitava kirje.<\/li>\n<\/ol>\n<p><a href=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_12_watch-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-7901 size-full\" src=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_12_watch-1.png\" alt=\"\" width=\"937\" height=\"397\" srcset=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_12_watch-1.png 937w, https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_12_watch-1-300x127.png 300w, https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_12_watch-1-768x325.png 768w\" sizes=\"auto, (max-width: 937px) 100vw, 937px\" \/><\/a><\/p>\n<p>Antud n\u00e4ites on n\u00e4idisprogramm peatatud p\u00e4rast andmete sisse lugemist main() funktsioonis. On n\u00e4ha, et ReadValue funktsiooni parameetrid min ja max ei ole loetavad &#8211;\u00a0<strong>me saame n\u00e4ha vaid parasjagu skoobis olevaid v\u00e4\u00e4rtusi<\/strong>. K\u00fcll aga saame me siia lisada oluliselt rohkem andmepunkte kui <strong>Autos<\/strong> seda v\u00f5imaldas.<\/p>\n<p>N\u00e4ites on lisatud:<\/p>\n<ul>\n<li>Kogu massiiv oma liikmetega<\/li>\n<li>\u00dcksik massiivi liige<\/li>\n<li>\u00dcksiku massiivi liikme m\u00e4luaadress (n\u00e4itab ka millele viitab)<\/li>\n<li>Matemaatilised operatsioonid olemasolevate v\u00e4\u00e4rtustega<\/li>\n<\/ul>\n<p><strong>Alamfunktsiooni edastatud massiivi sisu n\u00e4gemiseks<\/strong> v\u00f5imalik see k\u00e4sitsi lisada watch nimekirja\u00a0 j\u00e4rgmiselt: <span class=\"lang:c highlight:0 decode:true crayon-inline \">*massiiviNimi@pikkus<\/span><\/p>\n<p>NB! Makrote v\u00e4\u00e4rtust pole v\u00f5imalik lisada, sest meeldetuletus &#8211; kompileerimise k\u00e4igus need likvideeritakse ja asendatakse konstantidega.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Kasureaargumentide_silumine\"><\/span>K\u00e4sureaargumentide silumine<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>K\u00e4sureaargumentide kasutamiseks silutaval programmil tuleb need m\u00e4\u00e4rata\u00a0<strong>Target<\/strong> vahesakil,\u00a0<strong>Command line arguments<\/strong> lahtrisse.<\/p>\n<p><a href=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2025\/02\/cmd_args.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-9833\" src=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2025\/02\/cmd_args.png\" alt=\"\" width=\"636\" height=\"285\" srcset=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2025\/02\/cmd_args.png 636w, https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2025\/02\/cmd_args-300x134.png 300w\" sizes=\"auto, (max-width: 636px) 100vw, 636px\" \/><\/a><\/p>\n<p>Programmi jooksutades kuvatakse <strong>Autos<\/strong> vahesakil kenasti <span class=\"lang:c highlight:0 decode:true crayon-inline\">argc<\/span>\u00a0 v\u00e4\u00e4rtus, kuid argumentide vektorist <span class=\"lang:c highlight:0 decode:true crayon-inline\">argv<\/span>\u00a0 \u00a0kuvatakse automaatselt vaid esimene argument <span class=\"lang:c highlight:0 decode:true crayon-inline\">argv[0]<\/span> . Parema \u00fclevaate saamiseks lisame vaadeldava vektori k\u00e4sitsi\u00a0<strong>Watch<\/strong> vahekaardil, kasutades varasemalt tuttavat massiivi lisamise mustrit\u00a0 <span class=\"lang:c highlight:0 decode:true  crayon-inline \">arrayName@arrayLength<\/span>\u00a0.<\/p>\n<p><a href=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2025\/02\/cmd_args_watch.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-9834\" src=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2025\/02\/cmd_args_watch.png\" alt=\"\" width=\"629\" height=\"275\" srcset=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2025\/02\/cmd_args_watch.png 629w, https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2025\/02\/cmd_args_watch-300x131.png 300w\" sizes=\"auto, (max-width: 629px) 100vw, 629px\" \/><\/a><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Windows\"><\/span>Windows<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Antud siluri versioon ei ole Windowsil k\u00e4ttesaadav. Sellegipoolest on Windowsi kasutajatel v\u00f5imalik kasutada teist Geany pistikprogrammi silurile, mis on \u00fcpriski sarnane \u00fcleval kirjeldatule. M\u00f5nes aspektis on see veidi mugavam, m\u00f5nes ebamugavam aga erinevused on pigem t\u00fchised.<\/p>\n<p><strong>M\u00e4rkus:<\/strong> Allpool kirjeldatud silur on saadaval ka Linuxil, kuid ei ole kooliarvutites installeeritud.<\/p>\n<p>Juhend siluri kasutamiseks Windowsis on \u00fcsna sarnane Linuxi versiooniga, seega toon v\u00e4lja vaid peamised erinevused.<\/p>\n<p>Pistikprogrammi nimi on <strong>Scope Debugger<\/strong><\/p>\n<p><a href=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_w1_plugins.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-7870\" src=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_w1_plugins.png\" alt=\"\" width=\"468\" height=\"449\" srcset=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_w1_plugins.png 468w, https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_w1_plugins-300x288.png 300w\" sizes=\"auto, (max-width: 468px) 100vw, 468px\" \/><\/a><\/p>\n<p>Silutava programmi \u00fclesseadmine k\u00e4ib men\u00fc\u00fcribalt <strong>Debug -&gt; Setup. <\/strong>M\u00e4\u00e4ra \u00e4ra oma kompileeritud programmi asukoht lahtrisse Executable ja vajuta OK.<\/p>\n<p><a href=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_w2_setup.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-7872\" src=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_w2_setup.png\" alt=\"\" width=\"251\" height=\"323\" srcset=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_w2_setup.png 251w, https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_w2_setup-233x300.png 233w\" sizes=\"auto, (max-width: 251px) 100vw, 251px\" \/><\/a>T\u00f6\u00f6riistaribale lisandusid uued nupud Katkestuse lisamiseks \/ eemaldamiseks kl\u00f5psa sinisel ringil. \u00dclej\u00e4\u00e4nud nupud on m\u00f5eldud programmi t\u00f6\u00f6 kontrollimiseks ja samm-sammu haaval l\u00e4bimiseks.<\/p>\n<p><a href=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_w3_run_bkpnt.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-7873\" src=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_w3_run_bkpnt.png\" alt=\"\" width=\"814\" height=\"97\" srcset=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_w3_run_bkpnt.png 814w, https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_w3_run_bkpnt-300x36.png 300w, https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/12\/dbg_w3_run_bkpnt-768x92.png 768w\" sizes=\"auto, (max-width: 814px) 100vw, 814px\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Silur ehk debugger on t\u00f6\u00f6riist, millega saab koodi jooksutada rida-rea haaval ning anal\u00fc\u00fcsida programmi, sh selle muutujate v\u00e4\u00e4rtusi, funktsioonide pinu (function call stack) jpm. Sellist liiki t\u00f6\u00f6vahendid on tarkvara arenduses igap\u00e4evased ning nende kasutama \u00f5ppimine lihtsustab oluliselt tarkvara loomist. Enamik koodiredaktoreid tuleb kas siluritega juba kohe kaasa pakendatult (nt CLion, Visual Studio jt) v\u00f5i saab &hellip; <a href=\"https:\/\/blue.pri.ee\/ttu\/koodimisjuhendid\/siluri-kasutamine-geanys\/\" class=\"more-link\">Loe edasi <span class=\"screen-reader-text\">Siluri kasutamine Geanys<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":5274,"menu_order":10,"comment_status":"closed","ping_status":"closed","template":"page-templates\/code-width-wide.php","meta":{"footnotes":""},"class_list":["post-7862","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/pages\/7862","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/comments?post=7862"}],"version-history":[{"count":3,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/pages\/7862\/revisions"}],"predecessor-version":[{"id":9836,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/pages\/7862\/revisions\/9836"}],"up":[{"embeddable":true,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/pages\/5274"}],"wp:attachment":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/media?parent=7862"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}