Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Programma che va in crash 3 volte su 4
Forum - C/C++ - Programma che va in crash 3 volte su 4

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
Alex (Ex-Member)
Expert


Messaggi: 441
Iscritto: 15/08/2005

Segnala al moderatore
Postato alle 22:56
Martedì, 28/06/2011
Ciao a tutti, ho un programma che funzionava fino a ieri sera, e adesso non riesco ad avviarlo più perchè mi va in crash.

prima di andare in crash sul terminale compare questa roba:

Codice sorgente - presumibilmente C/C++

  1. ** glibc detected *** ./client_extra: free(): invalid next size (normal): 0x08c4b000 ***
  2. ======= Backtrace: =========
  3. /lib/libc.so.6(+0x6c501)[0x17c501]
  4. /lib/libc.so.6(+0x6dd70)[0x17dd70]
  5. /lib/libc.so.6(+0x6fe26)[0x17fe26]
  6. /lib/libc.so.6(__libc_memalign+0xad)[0x18143d]
  7. /lib/libc.so.6(posix_memalign+0x49)[0x181649]
  8. /lib/libglib-2.0.so.0(+0x5bf4f)[0x438f4f]
  9. /lib/libglib-2.0.so.0(g_slice_alloc+0x62f)[0x43974f]
  10. /lib/libglib-2.0.so.0(g_slice_alloc0+0x25)[0x4398e5]
  11. /usr/lib/libgobject-2.0.so.0(g_type_create_instance+0x97)[0x3c98c7]
  12. /usr/lib/libgobject-2.0.so.0(+0x13e75)[0x3ade75]
  13. /usr/lib/libgobject-2.0.so.0(g_object_newv+0x29a)[0x3abe5a]
  14. /usr/lib/libgobject-2.0.so.0(g_object_new+0x98)[0x3acaf8]
  15. /usr/lib/libgtk-x11-2.0.so.0(gtk_window_new+0x68)[0xbd18c8]
  16. ./client_extra[0x804e33b]
  17. ./client_extra[0x804cb28]
  18. /lib/libc.so.6(__libc_start_main+0xe7)[0x126ce7]
  19. ./client_extra[0x8049e81]
  20. ======= Memory map: ========
  21. 00110000-00267000 r-xp 00000000 08:01 1802326    /lib/libc-2.12.1.so
  22. 00267000-00269000 r--p 00157000 08:01 1802326    /lib/libc-2.12.1.so
  23. 00269000-0026a000 rw-p 00159000 08:01 1802326    /lib/libc-2.12.1.so
  24. 0026a000-0026d000 rw-p 00000000 00:00 0
  25. 0026d000-0026f000 r-xp 00000000 08:01 2026049    /usr/lib/libXcomposite.so.1.0.0
  26. 0026f000-00270000 r--p 00001000 08:01 2026049    /usr/lib/libXcomposite.so.1.0.0
  27. 00270000-00271000 rw-p 00002000 08:01 2026049    /usr/lib/libXcomposite.so.1.0.0
  28. 00274000-00308000 r-xp 00000000 08:01 2026360    /usr/lib/libgdk-x11-2.0.so.0.2200.0
  29. 00308000-0030a000 r--p 00094000 08:01 2026360    /usr/lib/libgdk-x11-2.0.so.0.2200.0
  30. 0030a000-0030b000 rw-p 00096000 08:01 2026360    /usr/lib/libgdk-x11-2.0.so.0.2200.0
  31. 0030b000-0034a000 r-xp 00000000 08:01 2024404    /usr/lib/libpango-1.0.so.0.2800.2
  32. 0034a000-0034b000 ---p 0003f000 08:01 2024404    /usr/lib/libpango-1.0.so.0.2800.2
  33. 0034b000-0034c000 r--p 0003f000 08:01 2024404    /usr/lib/libpango-1.0.so.0.2800.2
  34. 0034c000-0034d000 rw-p 00040000 08:01 2024404    /usr/lib/libpango-1.0.so.0.2800.2
  35. 0034d000-0035b000 r-xp 00000000 08:01 2026057    /usr/lib/libXext.so.6.4.0
  36. 0035b000-0035c000 r--p 0000d000 08:01 2026057    /usr/lib/libXext.so.6.4.0
  37. 0035c000-0035d000 rw-p 0000e000 08:01 2026057    /usr/lib/libXext.so.6.4.0
  38. 0035d000-00363000 r-xp 00000000 08:01 2026077    /usr/lib/libXrandr.so.2.2.0
  39. 00363000-00364000 r--p 00005000 08:01 2026077    /usr/lib/libXrandr.so.2.2.0
  40. 00364000-00365000 rw-p 00006000 08:01 2026077    /usr/lib/libXrandr.so.2.2.0
  41. 00365000-00367000 r-xp 00000000 08:01 2026053    /usr/lib/libXdamage.so.1.1.0
  42. 00367000-00368000 r--p 00001000 08:01 2026053    /usr/lib/libXdamage.so.1.1.0
  43. 00368000-00369000 rw-p 00002000 08:01 2026053    /usr/lib/libXdamage.so.1.1.0
  44. 00369000-0036d000 r-xp 00000000 08:01 2026059    /usr/lib/libXfixes.so.3.1.0
  45. 0036d000-0036e000 r--p 00003000 08:01 2026059    /usr/lib/libXfixes.so.3.1.0
  46. 0036e000-0036f000 rw-p 00004000 08:01 2026059    /usr/lib/libXfixes.so.3.1.0
  47. 0036f000-00371000 r-xp 00000000 08:01 2024259    /usr/lib/libgmodule-2.0.so.0.2600.1
  48. 00371000-00372000 r--p 00002000 08:01 2024259    /usr/lib/libgmodule-2.0.so.0.2600.1
  49. 00372000-00373000 rw-p 00003000 08:01 2024259    /usr/lib/libgmodule-2.0.so.0.2600.1
  50. 00373000-00376000 r-xp 00000000 08:01 2024267    /usr/lib/libgthread-2.0.so.0.2600.1
  51. 00376000-00377000 r--p 00003000 08:01 2024267    /usr/lib/libgthread-2.0.so.0.2600.1
  52. 00377000-00378000 rw-p 00004000 08:01 2024267    /usr/lib/libgthread-2.0.so.0.2600.1
  53. 00378000-0037a000 r-xp 00000000 08:01 1802479    /lib/libdl-2.12.1.so
  54. 0037a000-0037b000 r--p 00001000 08:01 1802479    /lib/libdl-2.12.1.so
  55. 0037b000-0037c000 rw-p 00002000 08:01 1802479    /lib/libdl-2.12.1.so
  56. 0037c000-00398000 r-xp 00000000 08:01 1802243    /lib/ld-2.12.1.so
  57. 00398000-00399000 r--p 0001b000 08:01 1802243    /lib/ld-2.12.1.so
  58. 00399000-0039a000 rw-p 0001c000 08:01 1802243    /lib/ld-2.12.1.so
  59. 0039a000-003db000 r-xp 00000000 08:01 2024131    /usr/lib/libgobject-2.0.so.0.2600.1
  60. 003db000-003dc000 r--p 00040000 08:01 2024131    /usr/lib/libgobject-2.0.so.0.2600.1
  61. 003dc000-003dd000 rw-p 00041000 08:01 2024131    /usr/lib/libgobject-2.0.so.0.2600.1
  62. 003dd000-004aa000 r-xp 00000000 08:01 1803057    /lib/libglib-2.0.so.0.2600.1
  63. 004aa000-004ab000 r--p 000cc000 08:01 1803057    /lib/libglib-2.0.so.0.2600.1
  64. 004ab000-004ac000 rw-p 000cd000 08:01 1803057    /lib/libglib-2.0.so.0.2600.1
  65. 004ac000-005c5000 r-xp 00000000 08:01 2026040    /usr/lib/libX11.so.6.3.0
  66. 005c5000-005c6000 r--p 00118000 08:01 2026040    /usr/lib/libX11.so.6.3.0
  67. 005c6000-005c8000 rw-p 00119000 08:01 2026040    /usr/lib/libX11.so.6.3.0
  68. 005c8000-005c9000 rw-p 00000000 00:00 0
  69. 005c9000-005e1000 r-xp 00000000 08:01 2026120    /usr/lib/libatk-1.0.so.0.3209.1
  70. 005e1000-005e2000 ---p 00018000 08:01 2026120    /usr/lib/libatk-1.0.so.0.3209.1
  71. 005e2000-005e3000 r--p 00018000 08:01 2026120    /usr/lib/libatk-1.0.so.0.3209.1
  72. 005e3000-005e4000 rw-p 00019000 08:01 2026120    /usr/lib/libatk-1.0.so.0.3209.1
  73. 005e4000-005fb000 r-xp 00000000 08:01 2026362    /usr/lib/libgdk_pixbuf-2.0.so.0.2200.0
  74. 005fb000-005fc000 r--p 00017000 08:01 2026362    /usr/lib/libgdk_pixbuf-2.0.so.0.2200.0
  75. 005fc000-005fd000 rw-p 00018000 08:01 2026362    /usr/lib/libgdk_pixbuf-2.0.so.0.2200.0
  76. 005fd000-00621000 r-xp 00000000 08:01 1802480    /lib/libm-2.12.1.so
  77. 00621000-00622000 r--p 00023000 08:01 1802480    /lib/libm-2.12.1.so
  78. 00622000-00623000 rw-p 00024000 08:01 1802480    /lib/libm-2.12.1.so
  79. 00623000-0062a000 r-xp 00000000 08:01 1802492    /lib/librt-2.12.1.so
  80. 0062a000-0062b000 r--p 00006000 08:01 1802492    /lib/librt-2.12.1.so
  81. 0062b000-0062c000 rw-p 00007000 08:01 1802492    /lib/librt-2.12.1.so
  82. 0062c000-0062e000 r-xp 00000000 08:01 2027004    /usr/lib/libxcb-shm.so.0.0.0
  83. 0062e000-0062f000 r--p 00001000 08:01 2027004    /usr/lib/libxcb-shm.so.0.0.0
  84. 0062f000-00630000 rw-p 00002000 08:01 2027004    /usr/lib/libxcb-shm.so.0.0.0
  85. 00633000-00634000 r-xp 00000000 00:00 0          [vdso]
  86. 00634000-00657000 r-xp 00000000 08:01 1802389    /lib/libpng12.so.0.44.0
  87. 00657000-00658000 r--p 00022000 08:01 1802389    /lib/libpng12.so.0.44.0
  88. 00658000-00659000 rw-p 00023000 08:01 1802389    /lib/libpng12.so.0.44.0
  89. 00659000-0067d000 r-xp 00000000 08:01 2024437    /usr/lib/libpangoft2-1.0.so.0.2800.2
  90. 0067d000-0067e000 r--p 00023000 08:01 2024437    /usr/lib/libpangoft2-1.0.so.0.2800.2
  91. 0067e000-0067f000 rw-p 00024000 08:01 2024437    /usr/lib/libpangoft2-1.0.so.0.2800.2
  92. 0067f000-00681000 r-xp 00000000 08:01 2026044    /usr/lib/libXau.so.6.0.0
  93. 00681000-00682000 r--p 00001000 08:01 2026044    /usr/lib/libXau.so.6.0.0
  94. 00682000-00683000 rw-p 00002000 08:01 2026044    /usr/lib/libXau.so.6.0.0
  95. 00683000-00687000 r-xp 00000000 08:01 2026055    /usr/lib/libXdmcp.so.6.0.0
  96. 00687000-00688000 r--p 00003000 08:01 2026055    /usr/lib/libXdmcp.so.6.0.0
  97. 00688000-00689000 rw-p 00004000 08:01 2026055    /usr/lib/libXdmcp.so.6.0.0
  98. 00689000-00693000 r-xp 00000000 08:01 2024408    /usr/lib/libpangocairo-1.0.so.0.2800.2
  99. 00693000-00694000 r--p 00009000 08:01 2024408    /usr/lib/libpangocairo-1.0.so.0.2800.2Aborted


da cosa può dipendere? i sorgenti sono un pò lunghi per postarli, però se occorre li posto ma a me interesserebbe solo avere un dritta su cosa può generare questo casino.
inoltre è da dire che può darsi che succeda perchè accedo a qualche area di memoria strana, perchè se avvio prima un altro programma poi questo non va più in crash...

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6403
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 23:16
Martedì, 28/06/2011
E' un problema di errata allocazione/deallocazione di memoria.

Controlla la coerenza di TUTTE le malloc/calloc/free.

Il problema può essere ovunque (non necessariamente dove viene manifestato) e può non manifestarsi sempre nello stesso modo.


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Alex (Ex-Member)
Expert


Messaggi: 441
Iscritto: 15/08/2005

Segnala al moderatore
Postato alle 23:30
Martedì, 28/06/2011
mi è venuto un dubbio:
alloco 2 o 3 liste all'avvio con malloc però poi, si arrangia il SO a deallocarle quando chiudo? può dipendere da quello?

sarà un bel casino controllare tutto: perchè non ci sono solo le malloc/free che ho scritto io, ma anche le funzioni per le gtk useranno la free, quindi di conseguenza se uso qualche funzione di queste su puntatori non usati può andarmi in crash...


Testo quotato



Il problema può essere ovunque (non necessariamente dove viene manifestato) e può non manifestarsi sempre nello stesso modo.


il problema si è sempre verificato all'avvio, quindi posso escludere funzioni che sicuramente non sono state chiamate?

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6403
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 23:35
Martedì, 28/06/2011
Testo quotato

Postato originariamente da Alex:

mi è venuto un dubbio:
alloco 2 o 3 liste all'avvio con malloc però poi, si arrangia il SO a deallocarle quando chiudo? può dipendere da quello?



E' meglio deallocare tutto quello che è stato allocato.

Testo quotato

sarà un bel casino controllare tutto ...



Nessuno ha detto che programmare sia facile ...

Testo quotato

il problema si è sempre verificato all'avvio, quindi posso escludere funzioni che sicuramente non sono state chiamate?



Se riesci ad essere certo di quelle che non sono richiamate, sì.

Dovresti tentare di replicare il malfunzionamento in modo da individuare un blocco di codice "sospetto" ...

Naturalmente, senza codice sorgente, non si può dire molto di più ...


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Alex (Ex-Member)
Expert


Messaggi: 441
Iscritto: 15/08/2005

Segnala al moderatore
Postato alle 23:38
Martedì, 28/06/2011
Testo quotato

Postato originariamente da nessuno:

Testo quotato

Postato originariamente da Alex:

mi è venuto un dubbio:
alloco 2 o 3 liste all'avvio con malloc però poi, si arrangia il SO a deallocarle quando chiudo? può dipendere da quello?



E' meglio deallocare tutto quello che è stato allocato.

Testo quotato

sarà un bel casino controllare tutto ...



Nessuno ha detto che programmare sia facile ...


concordo pienamente=)
Testo quotato



Testo quotato

il problema si è sempre verificato all'avvio, quindi posso escludere funzioni che sicuramente non sono state chiamate?



Se riesci ad essere certo di quelle che non sono richiamate, sì.

Dovresti tentare di replicare il malfunzionamento in modo da individuare un blocco di codice "sospetto" ...


in che senso?
Testo quotato


Naturalmente, senza codice sorgente, non si può dire molto di più ...


il fatto è che su due computer funziona senza problemi, su un terzo no...e se sposto Ambiente di sviluppo e compilatore su quello che non va poi magicamente funziona tutto...

però grazie mille per intanto...
se proprio non riesco vi posto i sorgenti, ma è un bel casino:D

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6403
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 23:43
Martedì, 28/06/2011
Testo quotato

Postato originariamente da Alex:
in che senso?



Prova ad eseguire il programma e replicare in maniera "scientifica" il malfunzionamento. Esempio

avvio il programma
scelgo la funzionalità x
eseguo input a e b
-> si verifica il problema

così da poter replicare anche su altri sistemi i passi che portano al malfunzionamento.

Testo quotato


il fatto è che su due computer funziona senza problemi, su un terzo no...e se sposto Ambiente di sviluppo e compilatore su quello che non va poi magicamente funziona tutto...



Se qualcosa non va, devi fare attenzione ... il fatto che vada su altri sistemi non vuol dire nulla ... deve andare SEMPRE.

A proposito, di quale sistema/ambiente/compilatore stiamo parlando?

Testo quotato

però grazie mille per intanto...
se proprio non riesco vi posto i sorgenti, ma è un bel casino:D



Figurati ... se vuoi passare i sorgenti, mettili in uno zip e manda un link per scaricarli ...


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Alex (Ex-Member)
Expert


Messaggi: 441
Iscritto: 15/08/2005

Segnala al moderatore
Postato alle 11:18
Mercoledì, 29/06/2011
Testo quotato

Postato originariamente da nessuno:

Testo quotato

Postato originariamente da Alex:
in che senso?



Prova ad eseguire il programma e replicare in maniera "scientifica" il malfunzionamento. Esempio

avvio il programma
scelgo la funzionalità x
eseguo input a e b
-> si verifica il problema

così da poter replicare anche su altri sistemi i passi che portano al malfunzionamento.


capito..ci provo
Testo quotato



Testo quotato


il fatto è che su due computer funziona senza problemi, su un terzo no...e se sposto Ambiente di sviluppo e compilatore su quello che non va poi magicamente funziona tutto...



Se qualcosa non va, devi fare attenzione ... il fatto che vada su altri sistemi non vuol dire nulla ... deve andare SEMPRE.


e si=) maledetti comportamenti indefiniti=(
Testo quotato


A proposito, di quale sistema/ambiente/compilatore stiamo parlando?


ubuntu 10.10, gcc come compilatore e NeatBeans come ide...
Testo quotato


Testo quotato

però grazie mille per intanto...
se proprio non riesco vi posto i sorgenti, ma è un bel casino:D



Figurati ... se vuoi passare i sorgenti, mettili in uno zip e manda un link per scaricarli ...



PM Quote
Avatar
Alex (Ex-Member)
Expert


Messaggi: 441
Iscritto: 15/08/2005

Segnala al moderatore
Postato alle 9:43
Lunedì, 04/07/2011
sono 3 giorni che guardo i sorgenti e non ne vengo fuori... vi allego i sorgenti, ho cercato di commentarli il più possibile..

EDIT: ho risolto! finalmente=) grazie mille lo stesso!

Ultima modifica effettuata da Alex il 04/07/2011 alle 11:28
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6403
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 11:29
Lunedì, 04/07/2011
Testo quotato

Postato originariamente da Alex:

EDIT: ho risolto! finalmente=) grazie mille lo stesso!



Beh, dopo aver visto tutto il giallo, adesso non ci dici chi era l'assassino ... non si fa così ... :)


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo