wip fuck it

This commit is contained in:
Maieul BOYER 2024-05-09 19:05:18 +02:00
parent 746a1ad2ad
commit 3937b70957
No known key found for this signature in database
7 changed files with 120 additions and 177 deletions

View file

@ -6,7 +6,7 @@
/* By: maiboyer <maiboyer@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/05/07 11:08:03 by maiboyer #+# #+# */
/* Updated: 2024/05/08 23:26:22 by maiboyer ### ########.fr */
/* Updated: 2024/05/09 07:43:10 by maiboyer ### ########.fr */
/* */
/* ************************************************************************** */
@ -54,7 +54,7 @@ static void print_trace_inner(void **trace, t_str *messages, t_usize i)
fflush(stderr);
snprintf(
syscom, sizeof(syscom) / sizeof(syscom[0]),
"addr2line %#x -e %.*s -ipfa"
"addr2line %#x -e %.*s -ipf"
"| 1>&2 rg \"^(.*) at %s(.*)\"'$' --replace '$1 at $2' --color never",
(t_u32)(convert_to_vma((t_usize)trace[i])), p, messages[i], BASE_PATH);
if (system(syscom))

View file

@ -6,7 +6,7 @@
/* By: maiboyer <maiboyer@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/05/07 13:08:52 by maiboyer #+# #+# */
/* Updated: 2024/05/08 19:33:27 by maiboyer ### ########.fr */
/* Updated: 2024/05/09 17:55:46 by maiboyer ### ########.fr */
/* */
/* ************************************************************************** */
@ -16,27 +16,28 @@
#include "me/types.h"
#include <stdlib.h>
void __libc_free(void *ptr);
void me_exit(t_i32 exit_code)
{
t_arena_page *page;
t_arena_page *tmp;
t_arena_block *block;
t_usize count_block;
t_mpage *page;
t_mpage *tmp;
t_mblock *block;
t_usize count_block;
page = get_head_arena();
count_block = 0;
while (page)
{
block = (void *)(((t_usize)page) + sizeof(*page));
while (((t_usize)page) <= ((t_usize)block) &&
((t_usize)block) <=
((t_usize)page) + page->page_size + sizeof(*page))
block = page->first;
while (block)
{
count_block += block->used;
block = (void *)(((t_usize)block) + sizeof(*block) + block);
if (block->used)
count_block += 1;
block = block->next;
}
tmp = page->next;
me_free(page);
__libc_free(page);
page = tmp;
}
if (count_block != 0)