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

πινακες struct FILES


alexcsk

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

ναι ειναι ασκηση! και αυτα που ηταν να ελενξω ειναι σωστα ^_^

 

δυστυχως ακομα δεν γνωριζω αυτα που μου ειπες.. :-( αλλα ευχαριστω για την συμβουλη B)

Βασικά αν ο προγραμματισμός είναι περιφερειακό μάθημα του κλάδου σου κι απλά θέλεις να περάσεις το μάθημα, τότε δεν χρειάζεται καν να τα μάθεις :)

 

Αλλιώς χρειάζεται! Σε το περιβάλλον προγραμματίζεις;

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Απαντ. 30
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

Συχνή συμμετοχή στο θέμα

Δημοσιευμένες Εικόνες

ναι οτι θα μου χρειαστει ειναι σιγουρο!! απλα ελπιζω οχι ακομα... ΕΙΝΑΙ ΠΑΑΑΑΡΑ ΠΟΛΛΑ! :mad:

 

C εχω κανει μεχρι τωρα μονο... αλλα απο του χρονου ερχονται και αλλες πολλες γλωσσες!

 

ειμαι πρωτοετης φοιτητρια στην πληροφορικη :mrgreen:

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

ναι οτι θα μου χρειαστει ειναι σιγουρο!! απλα ελπιζω οχι ακομα... ΕΙΝΑΙ ΠΑΑΑΑΡΑ ΠΟΛΛΑ! :mad:

Ο debugger είναι must και επειδή νομίζω πως δεν το διδάσκουν σε τάξεις (μιας και διαφέρει από περιβάλλον σε περιβάλλον) όσο πιο γρήγορα τον μάθεις τόσο καλύτερα.

 

Δεν είναι κάτι το δύσκολο για every-day use, και το κέρδος που αποκομίζεις είναι τεράστιο όταν ψάχνεις να βρεις bugs στα προγράμματά σου).

 

Στην πιο απλή μορφή του, ορίζεις στον κώδικά σου σε ποια γραμμή ή σε ποιες γραμμές θέλεις να σταματήσει προσωρινά η ροή του προγράμματός σου όταν το τρέξεις μέσα από τον debugger (αυτά λέγονται breakpoints και στα περισσότερα IDE απλά κάνεις κλικ στο μπροστινό περιθώριο των γραμμών που θες να μαρκάρεις... με δεύτερο κλικ αφαιρείς το breakpoint).

 

Κατόπιν ξεκινάς τον debugger και τρέχεις το πρόγραμμα μέσα από αυτόν.

 

Σε κάθε breakpoint που έχεις ορίσει σταματάει τη ροή του προγράμματος. Εκεί μπορείς καταρχήν να δεις τι τιμές έχουν όλες οι μεταβλητές σε εκείνο το σημείο. Μπορείς επίσης να ορίσεις σε ξεχωριστό παράθυρο όσες μεταβλητές θεωρείς πιο σημαντικές, ώστε να τις βλέπεις μόνιμα (watches λέγονται αυτά). Γενικώς σε κάθε breakpoint μπορείς να εξετάσεις όλες τις τοπικές καθώς και όλες τις καθολικές μεταβλητές του προγράμματός σου.

 

Κατόπιν μπορείς να επιλέξεις πως θα συνεχίσει η ροή του προγράμματος. Αν η τρέχουσα γραμμή περιέχει κλήση σε συνάρτηση μπορείς να του πεις να σε βάλει μέσα της (step into), ή μπορείς να του πεις να προχωρήσει στην επόμενη γραμμή χωρίς να μπει στην συνάρτηση (skip), ή μπορείς να του πεις να συνεχίσει μέχρι το επόμενο breakpoint (continue).

 

Αυτά είναι τα βασικά, και δεν είναι καθόλου δύσκολο να τα μάθεις (σε μισή, το πολύ μια ώρα θα έχει πάρεις το γενικότερο feeling).

 

Απλώς για να μπορεί το πρόγραμμά σου να γίνει debugged πρέπει όταν κάνεις compile τον κώδικα να περάσεις μια ειδική ρύθμιση στον compiler, ώστε να συμπεριλάβει τις πληροφορίες αποσφαλμάτωσης (debugger info) στο εκτελέσιμο αρχείο... αυτός είναι ένας από τους λόγους που πολλά IDE σε αφήνουν να διατηρείς 2 διαφορετικά σετ ρυθμίσεων του compiler: μια για debug (με ενεργοποιημένη τη σχετική ρύθμιση) και μια για release (που δεν έχει περιττές ρυθμίσεις, γιατί οι ρυθμίσεις για debugging μεγαλώνουν σημαντικά το μέγεθος του εκτελέσιμου αρχείου, και το κάνουν να τρέχει και πιο αργά από ότι μπορεί).

 

Αν δουλεύεις σε Visual C++/Visual Studio (γενικώς Visual whatever) o παπι έχει στο blog του ένα σύντομο άρθρο που ουσιαστικά "οπτικοποιεί" αυτά που έγραψα παραπάνω με εικόνες και βίντεο (προφανώς τα εξηγεί κι εκείνος με λόγια): http://tsokanoki.blo.../debugging.html

 

Αν δουλεύεις σε άλλο περιβάλλον (IDE) θα έχεις διαφορετικό debugger και ελαφρώς διαφορετικές διαδικασίες, αλλά η γενικότερη προσέγγιση είναι ίδια σε όλα τα περιβάλλοντα.

 

 

C εχω κανει μεχρι τωρα μονο... αλλα απο του χρονου ερχονται και αλλες πολλες γλωσσες!

 

ειμαι πρωτοετης φοιτητρια στην πληροφορικη :mrgreen:

Με ποιο πρόγραμμα (IDE) γράφετε & τρέχετε τους κώδικες;

 

EDIT:

 

Ξαναδιαβάζοντας με την ευκαιρία το άρθρο του πάπι που παρέθεσα παραπάνω, είδα πως στην αρχή γράφει πως φρίττει όταν διαβάζει προτάσεις για χρήση editors + plugins αντί για IDE, επειδή τα IDE προσφέρουν debugging. Επειδή είμαι από εκείνους που κατά βάση χρησιμοποιούν το Notepad++ όταν προγραμματίζουν, θέλω να αναφέρω πως τα πράγματα δεν είναι ακριβώς όπως τα περιγράφει ο παπι στο άρθρο του.

 

Σαφώς και με το IDE είναι πιο εύκολο το debugging, αλλά στην πραγματικότητα είναι πολύ συγκεκριμένα τα πράγματα που αποζητάει κανείς όταν κάνει casual debugging, και περιορίζονται σε 5-6 εντολές. Αυτές είναι πανεύκολο να τις δουλέψει κανείς ακόμα και σε text-mode, όπως για παράδειγμα κάνω εγώ ;)

 

Το screenshot που ακολουθεί δείχνει τον gdb από Notepad++ σε text-mode, να κάνει debug ένα Win32 API πρόγραμμα (btw, μόλις πρόσφατα βρήκα τι λαλακία είχα κάνεις και δεν μπορούσα να κάνω έτσι debug Win32 apps). H ροή είναι σταματημένη στο mouse-down event του About dialog και δείχνει τα περιεχόμενα της μεταβλητής logo που είναι ένας pointer σε struct.

 

post-38307-0-73334600-1339498698_thumb.jpg

 

Βέβαια όσο ανεβαίνουν οι απαιτήσεις τόσο πιο δύσχρηστη γίνεται η παραπάνω προσέγγιση, οπότε η χρήση γραφικού περιβάλλοντος για debugging κρίνεται ως αναγκαία (κι εγώ τη χρησιμοποιώ σε τέτοιες περιπτώσεις, ανοίγοντας κανονικό IDE). Όμως κατά κανόνα το text-mode είναι αρκετό :)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

σε αυχαριστω πολυ για ολα αυτα τα πολυ χρησιμα πραγματα που μου ειπες!!

 

εγω δουλευω με compiler αυτα που μου ειπες τωρα μου φαινοντε πολυ ενδιαφερον και θα τα ψαξω!!

 

Με ποιο πρόγραμμα (IDE) γράφετε & τρέχετε τους κώδικες;

 

με DEV-C++ αλλα εγω εχω και ubuntu ( πιστευω να γνωριζεις τι ειναι, αλλιως κοιτα αυτο!) τα οποια χειριζομαι πιο συχνα και με βολευουν πολυ για τις εργασιες μου ιδιαιτερα! :)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

σε αυχαριστω πολυ για ολα αυτα τα πολυ χρησιμα πραγματα που μου ειπες!!

 

εγω δουλευω με compiler αυτα που μου ειπες τωρα μου φαινοντε πολυ ενδιαφερον και θα τα ψαξω!!

Παρακαλώ! Δεν το κάνω μόνο από καλοσύνη, αλλά κι από συμφέρον. Αν βγεις αύριο στην αγορά και σε προσλάβω στην εταιρία μου θέλω να βεβαιωθώ πως θα κάνω καλή επένδυση (λέμε τώρα, σιγά μην έχω εταιρία, απεναντίας έχω αποσυρθεί από τον χώρο αρκετά χρόνια τώρα... απλά το φέρνω ως παράδειγμα της κεντρικής ιδέας ;) )

 

 

με DEV-C++ αλλα εγω εχω και ubuntu ( πιστευω να γνωριζεις τι ειναι, αλλιως κοιτα αυτο!) τα οποια χειριζομαι πιο συχνα και με βολευουν πολυ για τις εργασιες μου ιδιαιτερα! :)

Γνωρίζω, το έχω κι εγώ σε ένα παλιό laptop εδώ και μερικά χρόνια, αλλά θα το αφήσω στην 11.04 ... η 12.04 που βγήκε τώρα μάλλον θα σέρνεται ακόμα περισσότερο από την 11.04, την οποία αναγκάστηκα να τη γυρίσω σε Classic Gnome από το default Unity που είχε... αλλιώς πάγωνε το σύμπαν... γενικώς έχει θέματα το Ubuntu με παλιότερες άρτες γραφικών ).

 

Για τον Dev-C++, δυστυχώς η ενσωμάτωση που έχει του gdb δεν είναι καθόλου εύχρηστη. Δεν το έχω ψάξει αρκετά, μόνο πρόσφατα που έκανα την μετάφραση του IDE στα Ελληνικά ( http://www.insomnia....5-orwell-dev-c/ ) και απογοητεύτηκα. Αργό και δύσχρηστο ήταν οι πρώτες εντυπώσεις που μου άφησε... ίσως όμως να φταίει καμιά ρύθμιση (όπως είπα δεν το έψαξα πολύ).

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

ναι ισχυει οτι η 12.04 δεν ειναι και τοσο καλη...

και δυστυχως εγω την εγκατεστησα πριν την ψαξω λιγακι.. :mad:

απο error και κολημματα ειναι γεματηηη... :angry:

 

ναι και εγω δεν το δουλευω πολυ το Dev-C++ γτ μου φαινεται αρκετα περιπλοκο και αβολο..

εχω βρει την υγεια μου με τα ubuntu :D !!

 

Δεν το κάνω μόνο από καλοσύνη, αλλά κι από συμφέρον. Αν βγεις αύριο στην αγορά και σε προσλάβω στην εταιρία μου θέλω να βεβαιωθώ πως θα κάνω καλή επένδυση (λέμε τώρα, σιγά μην έχω εταιρία, απεναντίας έχω αποσυρθεί από τον χώρο αρκετά χρόνια τώρα... απλά το φέρνω ως παράδειγμα της κεντρικής ιδέας )

 

οποιος τυχερος με προσλαβει ( :P ) θα εχω να του λεω παντως οτι οτι εμαθα μονο απο το πανεπιστημιο δεν το εμαθα...!! αυτο ειναι σιγουρο :lol:

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

ναι ισχυει οτι η 12.04 δεν ειναι και τοσο καλη...

και δυστυχως εγω την εγκατεστησα πριν την ψαξω λιγακι.. :mad:

απο error και κολημματα ειναι γεματηηη... :angry:

Ναι ε; Ευτυχώς δηλαδή που δεν την έκανα κι εγώ την κουζουλάδα :lol:

Thanks για το tip ;)

 

ναι και εγω δεν το δουλευω πολυ το Dev-C++ γτ μου φαινεται αρκετα περιπλοκο και αβολο..

εχω βρει την υγεια μου με τα ubuntu :D !!

Εκεί που γράφεις κώδικα; Στο Geany? Στο Anjuta? Στο Code::Blocks? Το Anjuta είναι πολύ καλό IDE για linux.

 

Εγώ πάντως είμαι ανάποδα, με βολεύουν πολύ καλύτερα τα Windows για προγραμματισμό. Τα φτιάχνω και τα δοκιμάζω σε Windows και μετά τα περνάω στο ubuntu. Είναι ένας από τους λόγους που αποφεύγω τα IDE (κάνω τον φάκελο με τα πηγαία και το makefile ζιπ, το ξεζιπάρω στο ubuntu, γράφω: make στο terminal κι έτοιμος :) )

 

Στα Windows, προτείνω να αφήσεις το το Dev-C++ (εκτός αν το απαιτεί η σχολή σας) και κατέβασε την Pelles C: http://www.insomnia....cf%82-pelles-c/ (της έχω κάνει κι αυτής ελληνική μετάφραση, αλλά εφόσον θα ασχοληθείς με πληροφορική, δεν σου τα συνιστώ τα Ελληνικά).

 

Μόνο που είναι μόνο για C (δεν υποστηρίζει C++). Συγκριτικά με το Dev-C++ είναι πανάλαφρη και στοχευμένη. Κι έχει και πολύ καλό γραφικό debugger.

 

οποιος τυχερος με προσλαβει ( :P ) θα εχω να του λεω παντως οτι οτι εμαθα μονο απο το πανεπιστημιο δεν το εμαθα...!! αυτο ειναι σιγουρο :lol:

Βασικά οι σχολές, όσο καλές και να είναι, δίνουν τις βάσεις. Τα υπόλοιπα είναι στο χέρι του κάθε φοιτητή το από πόσο νωρίς θα αρχίσει να τα ψάχνει.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Εκεί που γράφεις κώδικα; Στο Geany? Στο Anjuta? Στο Code::Blocks? Το Anjuta είναι πολύ καλό IDE για linux.

 

θα φανω πολυ ασχετη μαλλον αλλα γραφω στο gedit... :P

 

να σου πω την αληθεια δεν τα ξερω αυτα που ανεφερες αλλα να σαι σιγουρος οτι θα τα ψαξω και αυτα οπως και το Pelles C που μου προτινες :)

απλα οχι ακομα γιατι λογο εξεταστικης δεν εχω και τοσο ελευθερο χρονο οσο θα ηθελα ... :( :cry:

 

Βασικά οι σχολές, όσο καλές και να είναι, δίνουν τις βάσεις. Τα υπόλοιπα είναι στο χέρι του κάθε φοιτητή το από πόσο νωρίς θα αρχίσει να τα ψάχνει.

 

ναι αυτο ισχυει σε μεγαλο βαθμο :mellow: και επειδη μου αρεσει πολυ και η σχολη αλλα και ο προγραμματισμος απο καλοκαιρι θα αρχισω να ασχολουμε και πιο πολυ :-) :shifty: :shifty:

( αν τα καταφερω...:Ρ )

 

απλα ειναι και τοσα πολλα που δεν ξερω απο που να ξεκινησω... :lol:

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

θα φανω πολυ ασχετη μαλλον αλλα γραφω στο gedit... :P

Εξαρτάται, αν το έκανες συνειδητά (από επιλογή δηλαδή) θα μπορούσες να χαρακτηριστείς και "προχωρημένη", γιατί έτσι αναγκαστικά δουλεύεις το tool-chain του gcc κατευθείαν από γραμμή-εντολών :)

 

Θα εκπλαγείς με το πόσοι δεν ξέρουν π.χ. τι είναι ο linker, τι ο assembler, τι τα object-files, κλπ. ακόμα και μετά από πολύ διάστημα κατά το οποίο "προγραμματίζουν" :P

(αυτό είναι παρενέργεια των IDE, που καμουφλάρουν το tool-chain με γραφικά κι ευκολίες).

 

Όπως και να 'χει, αφού γράφεις σε gedit και υποθέτω κάνεις κατόπιν compile & run στη γραμμή εντολών, γράφοντας π.χ...

 

>gcc myfile.c
./a.out

να σου δείξω πόσο απλό είναι να χρησιμοποιήσεις τον gdb debugger σε γραμμή εντολών...

 

Αντικαθιστάς το παραπάνω με ...

 

>
gcc -g3 myfile.c
gdb a.out

αυτό φορτώνει το εκτελέσιμο a.out μέσα στον gdb.

Ξεκινάς ορίζοντας breakpoints στις γραμμές που θέλεις από τον κώδικα. Αν π.χ. θες να βάλεις ένα breakpoint στη γραμμή 23 κι ένα στην 65, γράφεις 2 εντολές:

 

>
b 23
b 65

κατόπιν για τρέξει ο gdb το φορτωμένο a.out και να σταματήσεις στο 1ο breakpoint (line 23) γράφεις...

>run  ή σκέτο r

Μόλις σταματήσει, έχει διάφορες επιλογές, αλλά οι πιο βασικές είναι:

 

print x ή p x

(για να σου τυπώσει την τιμή της μεταβλητής x)

p &x

(για να σου τυπώσει τη διεύθυνση της μεταβλητής x)

 

p *x

(για να σου τυπώσει το περιεχόμενο του δείκτη x)

display x ή disp x

( για να σου τυπώσει την τιμή της μεταβλητής x και να στην τυπώνει συνεχώς μετά από κάθε εντολή σου... το λεγόμενο watching)

next ή n

(για να προχωρήσει ο κώδικας μια γραμμή)

step ή s

(αντί για next αν η τρέχουσα γραμμή περιέχει συνάρτηση και θέλεις να μπεις μέσα της)

undisp x

(για να καταργήσεις το watching της μεταβλητής x ... αν δώσεις σκέτο undisp καταργείς μαζικά σε μια κίνηση όλα τα watches που έχεις ορίσει)

delete id ή del id

(για να καταργήσεις ένα breakpoint ... τα id τα βάζει μόνος του μπροστά από κάθε breakpoint όταν τα ορίζεις με b , και σου τα δείχνει με info)

delete ή del

(σκέτο, καταργεί μαζικά με μια κίνηση όλα τα breakpoints )

continue ή c

( εναλλακτικό των next και step αν μετά από κάποιο breakpoint θέλεις να συνεχίσει μέχρι το επόμενο, ή μέχρι το τέλος του προγράμματος αν δεν υπάρχει άλλο breakpoint)

quit ή q

(έξοδος από τον gdb)

 

Αν δεν βάλεις καθόλου breakpoints και δώσεις run απλά τρέχει το πρόγραμμά σου. Αν κρασάρει, ο gdb θα σου πει σε ποιο σημείο κράσαρε και με τι error. Σε αυτή την περίπτωση μπορείς να γράψεις backtrace bt) για να σου δείξει ποιες συναρτήσεις κλήθηκαν μέχρι το κρασάρισμα.

 

Τέλος, όταν είσαι μέσα στον gdb, πατώντας ENTER εκτελεί την αμέσως προηγούμενη εντολή. Οπότε αν για παράδειγμα θες να προχωρήσει 5 γραμμές, βήμα-βήμα (για να δεις ας πούμε τα watches σου σε κάθε βήμα), δίνει την 1η φορά n και για τις υπόλοιπες απλά πατάς το ENTER :)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

:shock: :shock: :shifty:

 

:shock: :shock: :shifty:

 

θα μου φανουν πολυ χρησιμα ολα αυτα και σ ευχαριστω που μου τα ειπες :)

 

απορω γιατι αυτα δεν τα εχουμε καθει στη σχολη... γιατι πραγματικα ο compiler συνεχως 'βαραει' στα προγραμματα μου και καποιες φορες οι διορθωσεις ειναι απαλευτες... :( :angry:

 

και ειμαι σιγουρη οτι αυτο δεν γινεται μονο σε μενα.. :)

 

εχω κανει μαθημα σχετικα με το πως να δουλευω με τη γραμμη εντολων ( terminal ) αλλα τπτ απο αυτα δεν αναφεροταν.. :/

γνωριζεις μηπως καποιο βιβλιο η site η οτιδηποτε που να μπορεσω να τα διαβασω απο εκει??

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

:shock: :shock: :shifty:

 

:shock: :shock: :shifty:

 

θα μου φανουν πολυ χρησιμα ολα αυτα και σ ευχαριστω που μου τα ειπες :)

 

απορω γιατι αυτα δεν τα εχουμε καθει στη σχολη... γιατι πραγματικα ο compiler συνεχως 'βαραει' στα προγραμματα μου και καποιες φορες οι διορθωσεις ειναι απαλευτες... :( :angry:

 

και ειμαι σιγουρη οτι αυτο δεν γινεται μονο σε μενα.. :)

Εννοείται πως δεν γίνεται μόνο σε σένα. Σε όλους γίνεται, όσο έμπειροι κι αν είναι.

 

Φαντάζομαι ένας από τους λόγους που δεν αναφέρονται εκτεταμένα ή καθόλου στον debugger στις σχολές είναι ο περιορισμένος χρόνος, σε συνδυασμό με το γεγονός πως το κάθε tool-chain παρέχει διαφορετικά εργαλεία για debugging και profiling.

 

Ειδικά όμως το gcc tool-chain είναι με διαφορά το πιο "ported" σε διάφορες πλατφόρμες, για αυτό και η συντριπτική πλειοψηφία των καλών βιβλίων εκμάθησης της C χρησιμοποιούν το συγκεκριμένο tool-chain.

 

εχω κανει μαθημα σχετικα με το πως να δουλευω με τη γραμμη εντολων ( terminal ) αλλα τπτ απο αυτα δεν αναφεροταν.. :/

γνωριζεις μηπως καποιο βιβλιο η site η οτιδηποτε που να μπορεσω να τα διαβασω απο εκει??

Επειδή το tool-chain περιέχει πολλά εργαλεία, δεν γνωρίζω σε ποιο από όλα αναφέρεσαι. Το καθένα από αυτά έχει τη δική του τεκμηρίωση και ο ιδανικός τρόπος να τα κάνει κανείς πραγματικά κτήμα του είναι να τα εξασκήσει στην γραμμή εντολών, πριν αποφασίσει να πάει σε κάποιο IDE που τα αυτοματοποιεί.

 

Ακόμα και το ίδιο το "gcc που γράφουμε είναι ένας ήμι-αυτοματοποιημένος τρόπος για την κλήση των ξεχωριστών εργαλείων που κάνουν 1. compile, 2. assemble, 3. link και 4. load τους πηγαίους κώδικες που γράφουμε. Το καθένα από αυτά τα εργαλεία έχει ξεχωριστή τεκμηρίωση και περιμένει διαφορετικού είδους παραμέτρους.

 

Τα περισσότερα από αυτά όμως, μαζί με τις παραμέτρους τους, τα καλείς μονομιάς στην γραμμή που ξεκινάει με "gcc".

 

Βασικά ο όρος tool-chain περιλαμβάνει μια ευρύτερη γκάμα εργαλείων που δεν περιορίζεται μονάχα στην παραγωγή του εκτελέσιμου αρχείου (τα παραπάνω που έγραψα είναι τα απολύτως απαραίτητα βήματα για την παραγωγή και την εκτέλεση ενός εκτελέσιμου αρχείου).

 

Σύγχρονα tutorials, βιβλία, κλπ δεν ξέρω να σου υποδείξω, γιατί εγώ τα έμαθα πριν από μερικές 10ετίες. Αλλά ψάξου και θα βρεις... ρώτα και τον καθηγητή σου, δες και στο google, ρώτα κι εδώ σε ξεχωριστό νήμα για να είναι πιο στοχευμένο.

 

Για gdb, δες εδώ ένα πολύ εισαγωγικό tutorial: http://www.cs.cmu.ed...ilpin/tutorial/

Εδώ ένα πλήρες: http://www.dirac.org/linux/gdb/

Κι εδώ ένα ακόμα πιο πλήρες, από το port του gcc για dos: http://www.delorie.c...db/gdb_toc.html

 

EDIT:

 

Αν κατέβασες την Pelles C που σου είπα στα Windows, πήγαινε στο Help της και διάλεξε Command Line Tools... εκεί θα δεις το δικό της tool-chain (η Microsoft από την άλλη μεριά έχει άλλο tool-chain, και πάει λέγοντας). Η προσωπική μου άποψη είναι να μάθεις το gcc tool-chain για αρχή.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

μετα το τελος της εξεταστικης ειναι απο τα πρωτα πραγματα που θα κανω!! :) ( αφου κανω κανενα μπανακι πρωτα.. :Ρ )

 

με εβαλες τωρα στη διαδικασια να ψαχτω και να μαθω καινουργια πραγματα και αυτο μου αρεσει πολυ!!

 

ελπιζω μεχρι το τελος του καλοκαιριου να εχω κανει καποια προοδο! B)

 

η βοηθεια σου ηταν πολυ μεγαλη και σε ευχαριστω :D :D

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Επίσης να συμπληρώσω, ότι το IDE του DEV C++ τα κάνει σαλάτα όταν έρχονται οι pointers.

Θυμάμαι, όταν έκανα debugging ένα κώδικα ενός παιδιού που έγραφε σε DEV C++, ενώ το τελικό

αποτέλεσμα( τρέξιμο του κώδικα στο μυαλό) μου φαινόταν τελειώς λογικό, ο compiler έβγαζε

άλλα ντι ώλλων αποτελέσματα. Και μιλάμε για ένα απλό πρόγραμμα με λίστες( μία mergesort αν

θυμάμαι καλά). Έκανα compile τον ίδιο κώδικα στο gcc του Ubuntu μου και πετούσε.

Για μένα δεν είναι αξιόπιστο IDE και για το παραπάνω, αλλά και για το γεγονός ότι δεν έχει καθόλου

καλό editor( τα tabs έχουν διαφορετικό μέγεθος κάθε τρεις και λίγο). Η στοίχηση

παίζει μεγάλο ρόλο, και εκεί αποτυγχάνει + το γεγονός ότι είναι λίγο δύσκολο το interface.

 

Εγώ προσωπικά δε χρησιμοποιώ κάποιο IDE όταν προγραμματίζω( κυρίως σε C). Σε windows χρησι-

μοποιώ το notepad++, και εδώ θα παρακαλέσω τον mifg1 αν μπορεί να ποστάρει κάποια Links για

τον debugger που έδειξε σε προηγούμενο post.

 

Επίσης για windows δεν έχω εγκαταστήσει ακόμη κάποιον compiler. Δεν έχω ψαχτεί, καθώς η

περισσότερη δουλειά πέφτει στο Linux, όπου όλα φαίνονται και είναι ουτοπικά για τους

προγραμματιστές. :D:D Απ'όσο γνωρίζω 2 είναι οι πιο ακουστοί: MINGCW, CYGCW. Ποιόν μου

προτείνετε; Είχα εγκατεστημένο το CYGCW, αλλά με απογοήτευσε το shell των windows και τα

παράτησα. IDE σε windows χρησιμοποιούσα το codeblocks, το οποίο είναι πολύ καλό για εμένα,

όπως καλό πιστεύω πως είναι και το netbeans.

 

Όσον αφορά το linux, για IDE έχω ακούσει πολλά για το eMACS, αλλά προτειμώ editor και

συγκεκριμένα κορυφαίοι για όλα τα Linux-οειδή είναι ο Kate και το Vi. To πρώτο έχει

ευχάριστο interface και άριστη λειτουργικότητα( μακάρι το notepad++ κάποια μέρα να

γίνει σαν το Kate), ενώ το Vi έχει πολύ ζουμί, και απαιτεί εξάσκηση και συνεχή ενασχόληση.

 

Κλείνοντας, έχω εγκατεστημένο το Ubuntu 12.04 σε ένα απο τα 2 μου pc και μου φαίνεται μια

χαρά. Αρκεί να κάνεις ότι update βγαίνει, και κάποια σημαντικά tweaks. Πολλές ώρες από την

ενασχόλησή μου με το pc τις περνάω στο 12.04, το οποίο ζήτημα να μου crash-αρε μία οι δύο

φορές, και αυτές από δικές μου βλακειούλες :P

 

Sorry για το μέγεθος, απλά τα είδα όλα μαζί και είπα να πω κι εγώ την γνώμη μου. :X :)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Καλό ξεκίνημα alexcsk!

 

Επίσης να συμπληρώσω, ότι το IDE του DEV C++ τα κάνει σαλάτα όταν έρχονται οι pointers.

Θυμάμαι, όταν έκανα debugging ένα κώδικα ενός παιδιού που έγραφε σε DEV C++, ενώ το τελικό

αποτέλεσμα( τρέξιμο του κώδικα στο μυαλό) μου φαινόταν τελειώς λογικό, ο compiler έβγαζε

άλλα ντι ώλλων αποτελέσματα. Και μιλάμε για ένα απλό πρόγραμμα με λίστες( μία mergesort αν

θυμάμαι καλά). Έκανα compile τον ίδιο κώδικα στο gcc του Ubuntu μου και πετούσε.

Για μένα δεν είναι αξιόπιστο IDE και για το παραπάνω, αλλά και για το γεγονός ότι δεν έχει καθόλου

καλό editor( τα tabs έχουν διαφορετικό μέγεθος κάθε τρεις και λίγο). Η στοίχηση

παίζει μεγάλο ρόλο, και εκεί αποτυγχάνει + το γεγονός ότι είναι λίγο δύσκολο το interface.

Λες για το original της Bloodshed ή για το σύγχρονο fork Orwell Dev-C++;

Εγώ δεν έχω δουλέψει κανένα από τα 2, παρά μόνο για λίγο το Orwell λόγω της μετάφρασης που του έκανα. Δεν με ενθουσίασε, παρόλο το εντυπωσιακό πλήθος ρυθμίσεων που έχει (το βρήκα άβολο βασικά, σαν να τα έχει όλα σε λάθος θέσεις ένα πράγμα)..

 

Εγώ προσωπικά δε χρησιμοποιώ κάποιο IDE όταν προγραμματίζω( κυρίως σε C). Σε windows χρησι-

μοποιώ το notepad++, και εδώ θα παρακαλέσω τον mifg1 αν μπορεί να ποστάρει κάποια Links για

τον debugger που έδειξε σε προηγούμενο post.

Αν ευκαιρήσω αργότερα θα προσπαθήσω να γράψω σε ξεχωριστό νήμα έναν μικρό οδηγό για χρήση του notepad++ και του mingw tool-chain ως πλατφόρμα ανάπτυξης σε c/c++ (είχα ξεκινήσει κάτι παρόμοιο στη σελίδα μου, αλλά το έχω παρατήσει στη μέση, κυρίως επειδή εκεί τα πάντα τα γράφω χειροκίνητα σε php/html και είναι ολίγον μανίκι). O debugger είναι ο gdb του mingw toolchain.

 

Επίσης για windows δεν έχω εγκαταστήσει ακόμη κάποιον compiler. Δεν έχω ψαχτεί, καθώς η

περισσότερη δουλειά πέφτει στο Linux, όπου όλα φαίνονται και είναι ουτοπικά για τους

προγραμματιστές. :D:D Απ'όσο γνωρίζω 2 είναι οι πιο ακουστοί: MINGCW, CYGCW. Ποιόν μου

προτείνετε; Είχα εγκατεστημένο το CYGCW, αλλά με απογοήτευσε το shell των windows και τα

παράτησα. IDE σε windows χρησιμοποιούσα το codeblocks, το οποίο είναι πολύ καλό για εμένα,

όπως καλό πιστεύω πως είναι και το netbeans.

Οι δικές μου προτάσεις είναι πάνω-κάτω 3:

 

α) Pelles C για όποιον θέλει ότι πιο γρήγορο, στοχευμένο & σύγχρονο υπάρχει αυτή τη στιγμή σε C compiler στα Windows.

 

β) Code::Blocks αλλά όχι με το default mingw toolchain που ενσωματώνει, γιατί είναι παλιά έκδοση. Ιδανικά προτείνω να στήσει ξεχωριστά σε γραμμή εντολών είτε το mingw toolchain, είτε το mingw-w64 toolchain και κατόπιν να ρυθμίσει το Code::Blocks (ή όποιο άλλο IDE επιθυμεί) να χρησιμοποιεί αυτό το toolchain.

 

Το cygwin είναι εναλλακτικό toolchain, αλλά βασικά στήνει ένα Posix layer πάνω από τα Windows, με αποτέλεσμα πολλά προγράμματα, API, frameworks, και λοιπές τεχνολογίες που φτιάχνονται ή γίνονται port από το Linux σε Windows να μην μπορούν να χρησιμοποιηθούν απευθείας όπως τα διαθέτουν οι κατασκευαστές τους. Για παράδειγμα, το GTK+ διαθέτει στο επίσημο site του binaries για Windows, τα οποία όμως δεν δουλεύουν με cygwin (παραπέμπει στο setup του cygwin για κατέβασμα). Στα συν αυτής της προσέγγισης είναι πως το cygwin παρέχει σχεδόν 100% Posix συμβατότητα (ίσως και 100%, δεν το θυμάμαι)... όπου Posix βάλε Linux (και μερικά ακόμα).

 

Νομίζω επίσης πως μερικές αναβαθμίσεις που οι κατασκευαστές δεν τις κάνουν port για Windows, το Cygwin team τις κάνει από τα sources (αλλά για το δικό του περιβάλλον).

 

γ) Ότι και το β) αλλά με καστομαρισμένο Notepad++ αντί για Code::Blocks. Το βασικό πλεονέκτημα είναι πως το καστομάρισμα του Notepad++ παραμένει ίδιο για οποιαδήποτε γλώσσα, και όχι μόνο για C/C++.

 

Όσον αφορά το linux, για IDE έχω ακούσει πολλά για το eMACS, αλλά προτειμώ editor και

συγκεκριμένα κορυφαίοι για όλα τα Linux-οειδή είναι ο Kate και το Vi. To πρώτο έχει

ευχάριστο interface και άριστη λειτουργικότητα( μακάρι το notepad++ κάποια μέρα να

γίνει σαν το Kate), ενώ το Vi έχει πολύ ζουμί, και απαιτεί εξάσκηση και συνεχή ενασχόληση.

Το αντίστοιχο του Notepad++ σε Linux μπορούμε να πούμε πως είναι το Geany (υπάρχει και Windows). Προσωπικά βρίσκω το Notepad++ ανώτερο κι από Kate, κι από Geany, αλλά με χρήση plugins. O vi είναι μια κατηγορία από μόνος του κι ο emacs είναι επίσης άλλη κατηγορία από μόνος του. Δύσκολη καμπύλη εκμάθησης, αλλά μετά εκτοξεύουν την παραγωγικότητα στα ύψη. Ειδικά ο emacs είναι σαν ένα μικρό λειτουργικό σύστημα από μόνος του, αν έχεις όρεξη και σου αρέσει να δουλεύεις με πληκτρολόγιο δοκίμασέ τον (αν και είμαι σχεδόν σίγουρος πως δεν θα αντέξεις πάνω από 1-2 ώρες :lol:).

 

Από γραφικά IDE, το Code::Blocks υπάρχει και για Linux, αλλά δες και το Anjuta ;)

 

Κλείνοντας, έχω εγκατεστημένο το Ubuntu 12.04 σε ένα απο τα 2 μου pc και μου φαίνεται μια

χαρά. Αρκεί να κάνεις ότι update βγαίνει, και κάποια σημαντικά tweaks. Πολλές ώρες από την

ενασχόλησή μου με το pc τις περνάω στο 12.04, το οποίο ζήτημα να μου crash-αρε μία οι δύο

φορές, και αυτές από δικές μου βλακειούλες :P

 

Sorry για το μέγεθος, απλά τα είδα όλα μαζί και είπα να πω κι εγώ την γνώμη μου. :X :)

Εγώ έχω μείνει στο 11.04 γιατί το έχω στημένο σε παλαιό laptop, αλλά ειλικρινά πιστεύω πως τα Windows 7 είναι αιώνες μπροστά από το Ubuntu σε γραφική ευχρηστία. Για τον πυρήνα μέχρι και τα XP θεωρούσα ανώτερο το Linux, αλλά από εκεί και πέρα δεν παρακολουθώ στενά τις εξελίξεις, οπότε δεν έχω άποψη. Ξέρω σίγουρα πάντως πως π.χ. στα XP έχω να κάνω format περίπου 10 χρόνια και από το SP3 και μετά (νομίζω, ίσως κι από το SP2, δεν θυμάμαι ακριβώς) δεν έχω φάει ούτε ένα αδικαιολόγητο crash. Για τα 7άρια δεν το συζητάω καθόλου, πάνε τρένο ότι και να τους κάνεις :)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Λες για το original της Bloodshed ή για το σύγχρονο fork Orwell Dev-C++;

Εγώ δεν έχω δουλέψει κανένα από τα 2, παρά μόνο για λίγο το Orwell λόγω της μετάφρασης που του έκανα. Δεν με ενθουσίασε, παρόλο το εντυπωσιακό πλήθος ρυθμίσεων που έχει (το βρήκα άβολο βασικά, σαν να τα έχει όλα σε λάθος θέσεις ένα πράγμα).

 

Λέω για τον original της Bloodshed...και απορώ που πολλοί καθηγητές σε ΤΕΙ και ΑΕΙ

τον προτείνουν. :shock:

 

 

 

Άλλες εντολές για το gdb που είναι must, αποτελούν οι

break <function> or #line

για ξεκίνημα debugging από ένα συγκεκριμένο σημείο. Ιδιαίτερα χρήσιμο για τεράστιους κώδικες

και το

bt

ανιχνευτής ζόρικων segmentation faults :P Πάει κάτι στραβά --> bt και έχεις αναδρομικά τη

σειρά κλήσεων των συναρτήσεων που έχουν κληθεί μέχρι εκείνο το σημείο με αρχική την main.

 

 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα

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