Дебъгване
Как се дебъгва код, в който няма как да сложиш breakpoint и не знаеш каква грешка дава. Само знаеш кой е файла, който гърми... при това гърми така, че нищо в него не се изпълнява, така че print-ове не помагат. Това, което аз измислих беше, да оградя 99% от кода в
if (false){да видя че този 1% работи и след това да местя if statement-а надолу постепенно разкривайки все повече код, докато го хвана къде се дъни.
// 99% от кода
}
Сега ми изглежда смешно, ама вчера хич не ми беше забавно :-(
Ако някой има по-добра идея как мога да постъпя следващия път в подобна ситуация, моля да сподели :-)
за местенето - трябва да е максимално оптимизирано, което ще рече постоянно делене на половинки за най-бърз резултат :)) това го прилагам в SQL-и преди всичко де :)))
ОтговорИзтриванена какво е писано това нещо?
ОтговорИзтриванебез някакъв удобен механизъм да си ловиш и управляваш грешките просто не виждам начин изобщо да програмираш ;/
Не питай... тъжна история ...
ОтговорИзтриванедобре де, средата не поддържа ли tracing ? Или само на мен това ми звучи по-нормално от това да базикаш кода ? А и между другото, не е ли по-лесно кода, който не ти трябва да го изкоментираш и после само да местиш началото на коментара ?
ОтговорИзтриванеАми това е един измислен език, който е разширение на HTML с още тагове и чудесии, а за капак, бях набутала java код вътре. Специално темплейтите писани на този език, не могат да се дебъгват.
ОтговорИзтриванеА дали ще го закоментирам, или ще го оградя с if(false){}, май е почти един и също :-)
Значи имаш ценен урок какво не бива да ти се случва вбъдеще като код :)
ОтговорИзтриванеТоя урок ми отне 4 часа... а ако можеше да се дебъгва нормално, щеше да е 5мин....
ОтговорИзтриванеПонякога се налага да се работи в среда, каквато не е добра идея да се ползва... Примерно, съобразяване със стара CMS система, или нещо друго...
ОтговорИзтриванеАз така преди време какви ли не еквилибристики правех, защото редактирах .shtml файлове (SSI), а всички файлове в CMS системата иначе бяха .php3 и да не ти казвам, как под SSI се пишат прости неща от рода на PHP еквивалентите на if {} else {} ;-)
Е, накрая открих синтаксиса, де ... и позакърпих нещата, но си представям, ако трябваше да пиша нещо по-сложно... къв дебъг, кви пет лева... :)
Така че -- случва се да не можем да си определяме сами средата.. и правим, каквото можем тогава... :)
В подобни случаи printf() или подобна нему функция ти става пръв приятел - ползвам го вместо trace :) , за да видя къде точно се ми се дъни кодът. Ползвам го и в комбинация с if(0) или #if 0.
ОтговорИзтриванеprint-a не вършеше работа, щото цялото нещо гръмваше и не принтираше абсолютно нищо :-(
ОтговорИзтриванеДобре дощла в света на http://worsethanfailure.com/
ОтговорИзтриванеаз харесвам try { ... } catch .. стига да има възможност. в javascript обичам: catch + alert(e) ..
ОтговорИзтриванеза останалото често ползвам print / echo "blah" и местя индикатора докато грешката не се появи първа ;)
i v kraina smetka kak go debug tova neshto?
ОтговорИзтриванеТози коментар бе премахнат от автора.
ОтговорИзтриванеПомислих че пишеш на С/С++, но все пак да кажа:
ОтговорИзтриване__asm int 3;
Слагаш го където искаш да има break point.