Как се дебъгва код, в който няма как да сложиш breakpoint и не знаеш каква грешка дава. Само знаеш кой е файла, който гърми… при това гърми така, че нищо в него не се изпълнява, така че print-ове не помагат. Това, което аз измислих беше, да оградя 99% от кода в
if (false){
// 99% от кода
}
да видя че този 1% работи и след това да местя if statement-а надолу постепенно разкривайки все повече код, докато го хвана къде се дъни.
Сега ми изглежда смешно, ама вчера хич не ми беше забавно :-(
Ако някой има по-добра идея как мога да постъпя следващия път в подобна ситуация, моля да сподели :-)















за местенето – трябва да е максимално оптимизирано, което ще рече постоянно делене на половинки за най-бърз резултат :)) това го прилагам в 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.