THMMY.gr

Ηλεκτρονικοί Υπολογιστές και Τεχνικά Θέματα => Προγραμματισμός (C, VB, Delphi, PHP, ASP...) => Topic started by: Apostolof on December 31, 2017, 19:42:41 pm



Title: Log.wtf()
Post by: Apostolof on December 31, 2017, 19:42:41 pm
Ασχολούμαι με την 2η εργασία στα παράλληλα, όλα (σχετικά) καλά. Μέχρι που βάζω τις απαραίτητες free και αρχίζει να κρασάρει με errors σχετικά με τη malloc και segmentation faults. Αλλάζω γραμμές από εδώ και από εκεί. Ψιλο-αλλάζουν και τα error messages αλλά τίποτα. Έχω τσεκάρει 500 φορές όλες τις malloc. Με τα πολλά αρχίζει να βγάζει error σε μία printf. :???:

Οπότε αρχίζω την (αγαπημένη μου) debug μέθοδο που γράφω:
Code:
printf("HERE\n");
στη main μετά από κάθε κλήση συνάρτησης που μπορεί να το προκαλεί.

Ξαφνικά όλα τρέχουν σωστά. Σβήνω μερικά "HERE" και πετάει πάλι error. WTF? Γρήγορο googlάρισμα:
Quote
c printf causes segmentation fault
Generally speaking, a segmentation fault is caused by some form of pointer molestation. (https://cboard.cprogramming.com/c-programming/141662-commenting-out-printf-causes-segmentation-fault.html#post1058203)

Μη το κουράζω σε μια λούπα έβγαινα έξω από τον πίνακα, άλλαξα τη συνθήκη από numberOfWhatever-1 σε numberOfWhatever-2 και όλα καλά.

Ελπίζω να διασκεδάσατε λίγο με το ηλίθιο βασανιστήριο μου και να μοιραστείτε errors και crashes που σας έκαναν να πείτε wtf.


Title: Re: Log.wtf()
Post by: Aristos on December 31, 2017, 20:05:46 pm
δεν έχω κρατήσει ακριβώς το μύνημα αλλά κάποτε το valgrind μου έβγαλε κάτι σαν και αυτό:

Quote
More than 100000 total errors detected.  I'm not reporting any more.
Final error counts will be inaccurate.  Go fix your program!

ήταν η 4η εργασία για τα παράλληλα αυτόν τον σεπτέμβριο.

επίσης, για να βρεις segmentation fault, το memchecκ του valgrind είναι πολύ πιο αποδοτική μέθοδος από τα printf


Title: Re: Log.wtf()
Post by: Apostolof on December 31, 2017, 20:12:55 pm
Quote
than 100000 total errors detected.  I'm not reporting any more.
Final error counts will be inaccurate.  Go fix your program!

;D ;D
Νταξ δε δούλευα μόνο με τα printf :P Πάλευα με το gdb. Πάντως το valgrind βλέπω να το προτείνουν παντού, θα το τσεκάρω.


Title: Re: Log.wtf()
Post by: Apostolof on January 07, 2018, 14:09:47 pm
επίσης, για να βρεις segmentation fault, το memchecκ του valgrind είναι πολύ πιο αποδοτική μέθοδος από τα printf

Quote
valgrind: the 'impossible' happened:
   Killed by fatal signal

;D ;D