Jump to content
php.lv forumi

Noderīgas funkcijas


Recommended Posts

  • Replies 107
  • Created
  • Last Reply

Top Posters In This Topic

debugošana ar breakpointiem un variable watchu reti kad ir efektīvākais veids.

Bieži izdrukājot masīvu vai citu datu saturu vienu vai vairākas reizes, var daudz ātrāk saprast, kas notiek programmā.

Tas, kur šo saturu drukāt, jau ir cits jautājums.

 

Pat sacensībās kodējot uzdevumus c++, kur debugošana, iešana pa soļiem un variable watch izmantošana ir elementāra, lielākā daļa kļūdas programmā meklē drukājot starprezultātus, jo tā var daudz precīzāk un ātrāk iegūt tieši tos datus, kurus vajag.

Link to post
Share on other sites

Nu lielākoties ātrs var_dump vai print_r ir ātrāks par debug sesijas startēšanu un tās izmantošanu. Es gan nesaku, ka, piemēram, xDebug nav sava vieta pasaulē. Īpaši vēl neapzinātās sistēmās.

 

( pieļauju, ka drīz vajadzēs šo tēmu splitot jaunā kad sāksies flame war )

Link to post
Share on other sites

 

Tas, kur šo saturu drukāt, jau ir cits jautājums.

Tas principā arī bija tas, par ko es runāju. Es parasti izmantoju tādām lietām savu logger interfeisu (Logger::debug(whatever, you, want)).

 

Es nebiju domājis tādu kārtīgu debugošanu ar IDE u.c. tūļiem, vienkārši tāda variabļu printēšana pa vidu normālajam outputam lapā man neliekas laba doma.

Edited by jurchiks
Link to post
Share on other sites

Tu vienlaicīgi vari atjaunināt saturu browserī + uzreidz redzēt debug outputu. Nav pat jāpārfokusē acis uz otru ekrānu.

Piemēram, man nekas vispār nekur nav jafokusē. Viss ir tur, kur man tas liekas ērti. Redzu kodu, redzu output, redzu mainīgo vērtības un ar visiem breikpointiem utt. izvirtībām. Rakstīt "i am here" un print_r, kas pēc tam jāmēģina izpīpēt izvadē, ir well, neefektīvi. 

 

Pie tam, kā tu debugosi, piemēram, produkciju ja kaut kādu iemeslu dēļ nevari atsekot kļūdu testā/lokāli? Rakstīsi if remote_addr == mana {print_r }? :)

XAI6szvs.png

Link to post
Share on other sites

Lai tādā veidā debugotu, tev tik un tā vienmēr jāpārslēdzas uz index.php un tad vēl iespējams kaut kur jāklikšķina, lai nonāktu kaut kur vajadzīgajā vietā.  vai tā nav? Kāda ir prakse?

 

Man tas internal browser liekas pārāk lēnu un vispār F11 ne vienmēr nostradā, iespējams es kaut kādu vecu versiju lietoju, bet nu tās jaunākās vienkārši ir pārāk resursu rijīgas.

Link to post
Share on other sites

Kāpēc jāpārslēdzas? 

 

Process sekojošs - piemēram, tev ir kaut kāds kontrolieris, kurā ir bugs, kuru gribi notestēt - saliec breikpointus un watchus uz mainīgajiem, ko gribi vērot (tas ir pāris kliku jautājums), nospied debug un voila - skripts izpildās līdz pirmajam breikpointam, iedod tev mainīgo saturu, tad continue līdz nākamajam un tā tālāk. Tā var atsekot infinite mainīgos un infinite izpildes ceļus. Vari skatīties mainīgos pirms un pēc metožu izpildes utt utjp. 

 

Visu iespējams nokonfigurēt lai nebūtu 100 reizes jākliko pa lapu, taču ne vienmēr - IDE arī nav maģiskais kociņš.

 

Par internal browseri - pričom te ātrums? Tev ir jādebugo nevis kas. Man ar iebūvēto viss ir puslīdz okei. Protams, nav tā nekāda chrome, bet ir okei. 

Link to post
Share on other sites

Pārslēgties es domāju uz index.php tabu, jo ja debugo klasi, pieņemsim, ka katra failā viena klase, tad tu tos breikus vari likt cik gribi, bet klase jau netiek nekur inicializēta kā'objekts un nekas nenotiek.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...