Προς το περιεχόμενο

Χρησιμοποιειτε debugger παντοτε?


MrSeanKon

Προτεινόμενες αναρτήσεις

Δημοσ.

Καταρχας δεν ειμαι καποιος επαγγελματιας προγραμματιστης αλλα ορισμενες φορες δε με διευκολυνει.

Εννοω οτι το βρισκω σπαστικο να πατω συνεχως το F11 στο Visual Studio να τρεξει την επομενη εντολη ασχετα αν μπορω να βαλω καποιες μεταβλητες να παρακολουθουνται.

Αν κιολας τρεχει και καποιο θρεντ (το οποιο γινεται κατα κορον στα χαρτοπαιγνια που μοιραζω) τοτε μπερδευομαι χειροτερα.

Τελος παντων ας μιλησουν κι οι ειδικοτεροι στο θεμα αυτο.

Δημοσ.
Καταρχας δεν ειμαι καποιος επαγγελματιας προγραμματιστης αλλα ορισμενες φορες δε με διευκολυνει.

Εννοω οτι το βρισκω σπαστικο να πατω συνεχως το F11 στο Visual Studio να τρεξει την επομενη εντολη ασχετα αν μπορω να βαλω καποιες μεταβλητες να παρακολουθουνται.

Αν κιολας τρεχει και καποιο θρεντ (το οποιο γινεται κατα κορον στα χαρτοπαιγνια που μοιραζω) τοτε μπερδευομαι χειροτερα.

Τελος παντων ας μιλησουν κι οι ειδικοτεροι στο θεμα αυτο.

 

Δεν ξέρω τι μου λες εσύ αλλά ναι αν και λίγο σπαστικό το debugger σου δίνει καταπληκτικές δυνατότητες, μπορείς να δεις που χτυπάει κατευθείαν το πρόγραμμα καλώντας το stack, να κάνεις memory dump για να δεις τι γράφεται στην μνήμη, να βρεις λάθη όπως πχ μια φορά είχα κάνει ένα θεικό if(x = 5) και δεν έμπαινε ποτέ στο if και πολλά άλλα. Το debugging είνα αναπόσπαστο εργαλείο του προγραμματιστή, και αν θέλεις να μιλήσουμε για καλούς debuggers ρίξε μια ματιά στον CodeGuard της Borland.

Δημοσ.
πχ μια φορά είχα κάνει ένα θεικό if(x = 5) και δεν έμπαινε ποτέ στο if και πολλά άλλα
Μισο σε αυτο δε σε προειδοποιουσε ο compiler οτι ειναι εσφαλμενη εντολη?
Δημοσ.

Aυτο σκεφτηκα κι εγω!

Εχει τυχει κι εμενα καποιες φορες να μη δουλευουν τα if και να λεω τι στο διαολο παιζει και δε μπαινει εκει μεσα ο κωδικας....

Δημοσ.

ειναι πολλα πραγματα που ο compiler δε μπορει να "πετυχει" ως λαθη

τετοια ειναι τα λογικα λαθη

πχ λες στο μηχανημα

"παρε ενα θετικο αριθμο και αρχισε να του προσθετεις 1 μεχρι αυτος να γινει μηδεν"

προφανως, αυτο δεν ειναι λογικα σωστο και θεωρητικα δεν γινεται ποτε.

Ακομα χειροτερα, αν το ειχες βαλει σε ενα λουπ ως συνθηκη τερματισμου, θα ειχες λαθος αποτελεσματα γιατι οντως καποτε θα γινοταν μηδεν (θα εφτανε η μεταβλητη τη μεγιστη τιμη που μπορει να κρατησει, και θα ξεκινουσε απο αρνητικη τιμη μεχρι να φτασει στο μηδεν).

Τελικο αποτελεσμα οτι ναναι, αλλα απο αποψεως compiler ολα ειναι οκ! Αρα τι σου μενει? Debugger για να τσεκαρεις τη μεταβλητη στη συνθηκη τερματισμου την ωρα που τρεχει ο προγραμμας.

 

Το εχω παθει ουτε μια, ουτε δυο.... και στανταρ θα το ξαναπαθω

Δημοσ.

Προγραμματίζω σε αρκετά προχωρημένο επίπεδο, και μπορώ να σου πω ότι απορώ πως οι προγραμματιστές δεν είχαν γίνει ψυχοπαρανοϊκοί πριν τους debugger. Χωρίς debugger δεν γίνεται τίποτα σε περίπλοκες εφαρμογές.

Τώρα που γίνεται debugging ακόμα και σε javascript έχω βρει την υγεία μου.

Το γεγονός ότι σε ενοχλεί το F11 σημαίνει ότι δεν ξέρεις να χρησιμοποιείς τα breakpoints ή τα conditional breakpoints. Μπορείς να ρυθμίσεις τον debugger ώστε να παγώνει την εκτέλεση μόνο όταν εκτελεστεί κάποια συγκεκριμένη γραμμή ή όταν μια μεταβλητή πάρει μια συγκεκριμένη τιμή.

Δημοσ.

ρυθμιση τι?

για breakpoints?

ναι, τοποθετουνται με το F9

 

δηλαδη, πας τον κερσορα στο σημειο του κωδικα που θες να "παγωσει" η εκτελεση, πατας F9, και θα δεις ενα κοκκινο κυκλακι στ'αριστερα του κώδικα.

 

δοκιμασε το

Δημοσ.

ΟΚ θενξ (τωρα στα γεραματα μαθε μπαρμπα γραμματα).

Θυμαμαι παλιοτερα απο την MSDOS Borland που ειχε μια επιλογη ο αποσφαλτωτης (debugger) που ετρεχε τον κωδικα μεχρι τη γραμμη που του εχεις ορισει.

Αυτο θα με διευκολυνε διοτι αν ο κωδικας εχει ας πουμε ενα βρογχο αντε να πατας σα Βεγγος το Φ11....

Δημοσ.

ναι, περι αυτου προκειται

 

και μπορεις να ορισεις περισσοτερα του ενος breakpoints σε διαφορα σημεια, οποτε μπορεις να πηδας μονο στα σημεια ενδιαφεροντος....

 

have a happy debugging

Δημοσ.
Σταυρος εχει τετοια ρυθμιση το Βιζουαλ Στουντιο? :rolleyes:

Με αριστερό κλικ στην αρχή μιας γραμμής, στο γκρίζο δίπλα από τον αριθμό της γραμμής, ενεργοποιείς ένα breakpoint στην γραμμή αυτή.

Πήγαινε πάνω στο μενού Debug->Windows->Breakpoint

Σου δείχνει τα brakpoints που έχεις ήδη ορίσει.

Με δεξί κλικ σε ένα breakpoint σου εμφανίζει τις επιλογές:

- coundition: δίνεις μια συνθήκη. Αν ισχύει σε αυτό το σημείο ενεργοποιοείται το breakpoint

- Hit count:Επιλέγεις μετά από πόσες φορές που θα εκτελεστεί η γραμμή θα ενεργοποιηθεί το breakpoint

- Filter (για πολύ προχωρημένους): To breakpoint ενεργοποιείται μόνο αν την συνάρτηση την καλέσει συγκεκριμένο process, εφαρμογή, κτλ.

- When hit: Μπορείς να επιλέξεις να κάνει κάτι συγκεκριμένο όταν ενεργοποιηθεί το breakpoint.

 

Πατώντας στο new πάνω αριστερά έχει επιπλέον την επιλογή "Break at function".

Δημοσ.

Καλως κομπιουτεραδες εμαθα και κατι παραπανω στα 35 μου!

Με ΦΟΡΤΡΑΝ ξεκινησα πριν 15 χρονια!

Καταλαβαινετε οτι με ξενιζουν οι νεες επιλογες!

Δημοσ.

E δεν ηξερα ποσο εισαι απλα το να διαβαζω σε τετοια ηλικια εγχειριδια κι εννοιες που κανουν τα 19χρονα των Παν/μιων με κανει να νοιωθω παππους! :-)

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...