<div dir="ltr"><div><div><div><div>Am configurat kretprobe pentru kmalloc astfel incat sa aiba doua handlere: unul pentru entry si unul pentru exit.<br></div>In handlerul de entry apelez o functie care adauga pointerul si cantitatea de memorie la o lista pentru a putea fi verificat apoi de catre kfree pentru a determina cantitatea de memorie dezalocata.<br></div>Funcia respectiva se numeste "proclist_alocadd".<br></div>In corpul ei apelez "kmalloc" pentru alocarea elementului introdus in lista.<br></div><div>Este asta o problema?<br><br></div><div>O portiune din codul meu:<br><br>//probe config for kmalloc<br>static int my_kmalloc_handler(struct kretprobe_instance *ri, struct pt_regs *regs)<br>{<br>    unsigned long ret_value = regs_return_value(regs);<br>    //count<br>    proclist_statadd(current->pid, CNT_KMALLOC, 1);<br>    //register memory<br>    proclist_allocconfirm(current->pid, (void *)ret_value);<br>    return 0;<br>}<br><br>static int my_kmalloc_entry(struct kretprobe_instance *ri, struct pt_regs *regs){<br>    int size = regs->bx;<br>    proclist_allocadd(current->pid, size);<br>    return 0;<br>}<br><br>static struct kretprobe kretprobe_malloc = {<br>    .entry_handler = my_kmalloc_entry,<br>    .handler = my_kmalloc_handler,<br>};<br></div></div>