Mesaje recente

Members
Stats
  • Total Posts: 17786
  • Total Topics: 1234
  • Online Today: 12
  • Online Ever: 233
  • (26 June 2007, 07:28)
Users Online
Users: 0
Guests: 8
Total: 8

Author Topic: Cum pot modifica MALLOC_CHECK_?  (Read 816 times)

0 Members and 1 Guest are viewing this topic.

Offline BiThian

  • Începător
  • *
  • Posts: 33
  • Cookies: 2
  • The boy with the OS with the flag
Cum pot modifica MALLOC_CHECK_?
« on: 29 November 2006, 22:47 »
Code: (c) [Select]
int main()
{
char* test;
putenv("MALLOC_CHECK_=1");
test=(char*)malloc(10*sizeof(char));
free(test);
free(test);
exit(0);
}
Desi variabila MALLOC_CHECK_  pare a fi modificata (am afisat tot environ-ul  ;;) ) , programul se termina fortat (este apelata abort). Nu acelasi lucru se intampla, daca inainte de a-l rula, setez din shell MALLOC_CHECK_):
Code: (bash) [Select]
$ export MALLOC_CHECK_=1
Pentru alte variabile de mediu (sper ca am tradus bine) cum ar fi HOSTNAME, codul C merge.
"A man who would not die for something is not fit to live." - Martin Luther King

Offline kman

  • God of the code-monkeys
  • Membru
  • ***
  • Posts: 192
  • Cookies: 24
Re: Cum pot modifica MALLOC_CHECK_?
« Reply #1 on: 29 November 2006, 22:56 »
Problema ta nu este de setare a variabilei ci de momentul in care se face evaluarea ei.
Valoarea variabilei MALLOC_CHECK_ e verificata o singura data de catre glibc la incarcarea in memorie a programului tau, cand se seteaza starea interna a glibc-ului, dupa aceea se foloseste aceasta stare si nu valoarea din variabila de mediu.
Presupunerea mea e ca aceasta setare de stare interna se face in momentul in care linker-ul (ld-linux.so.2) incarca in memorie programul tau si initializeaza toate librariile link-ate dinamic. Asta e doar o presupunere, dar din experimentul tau se pare ca asa se si intampla, daca cineva are mai multe cunostinte in acest domeniu il rog sa ne lamureasca.

Offline BiThian

  • Începător
  • *
  • Posts: 33
  • Cookies: 2
  • The boy with the OS with the flag
Re: Cum pot modifica MALLOC_CHECK_?
« Reply #2 on: 30 November 2006, 11:00 »
Mersi, kman. Vad ca mai am multe de invatat.

PS: De ce nu-mi pot edita posturile?
"A man who would not die for something is not fit to live." - Martin Luther King

Offline kman

  • God of the code-monkeys
  • Membru
  • ***
  • Posts: 192
  • Cookies: 24
Re: Cum pot modifica MALLOC_CHECK_?
« Reply #3 on: 30 November 2006, 11:43 »
Pentru ca userii normali nu-si pot edita posturile decat pana la o ora dupa ce au postat prima data.