vallgrind
This commit is contained in:
parent
91cb0af6ef
commit
8e5f90436a
2
.vscode/launch.json
vendored
2
.vscode/launch.json
vendored
@ -5,7 +5,7 @@
|
|||||||
"name": "Debug minishell",
|
"name": "Debug minishell",
|
||||||
"type": "cppdbg",
|
"type": "cppdbg",
|
||||||
"request": "launch",
|
"request": "launch",
|
||||||
"program": "${workspaceFolder}/minishell",
|
"program": "${workspaceFolder}/build/debug/minishell",
|
||||||
"args": [],
|
"args": [],
|
||||||
"stopAtEntry": false,
|
"stopAtEntry": false,
|
||||||
"cwd": "${workspaceFolder}",
|
"cwd": "${workspaceFolder}",
|
||||||
|
|||||||
42
sources.mk
42
sources.mk
@ -1,22 +1,22 @@
|
|||||||
VPATH = src:src/prompt:src/utils:src/lexer:src/token:src/environment:src/executor:src/parser:src/signal:src/debug:src/expander:src/builtin:src/redirect:
|
VPATH = src:src/prompt:src/utils:src/lexer:src/token:src/environment:src/executor:src/parser:src/signal:src/debug:src/expander:src/builtin:src/redirect:
|
||||||
SOURCES = history_load.c history_write.c prompt.c free_lexer.c free_token.c \
|
SOURCES = history_load.c history_write.c prompt.c ft_lstclear_safe.c \
|
||||||
free_token_list.c free_minishell.c free_minishell_line.c \
|
ft_lstnew_safe.c ft_strdup_safe.c ft_strjoin_safe.c init_minishell.c \
|
||||||
init_minishell.c check_malloc.c error_msg.c free_command_list.c \
|
malloc_safe.c print_banner.c error_msg.c check_malloc.c \
|
||||||
ft_strdup_safe.c ft_strjoin_safe.c print_banner.c free_freelist.c \
|
free_command_list.c free_freelist.c free_lexer.c free_minishell.c \
|
||||||
malloc_safe.c free_safe.c ft_lstclear_safe.c ft_lstnew_safe.c \
|
free_minishell_line.c free_safe.c free_token.c free_token_list.c \
|
||||||
lexer_read_char.c lexer_token_next.c lexer_parse_input.c lexer_new.c \
|
lexer_read_char.c lexer_new.c lexer_parse_input.c lexer_read_word.c \
|
||||||
lexer_read_word.c token_new.c token_parse.c environment_free.c \
|
lexer_token_next.c token_new.c token_parse.c environment_add.c \
|
||||||
environment_del.c environment_free_list.c environment_get.c \
|
environment_del.c environment_free.c environment_free_list.c \
|
||||||
environment_parse.c environment_add.c environment_get_arr.c \
|
environment_get.c environment_get_arr.c environment_parse.c \
|
||||||
environment_print.c executor_close_fds.c executor_child.c \
|
environment_print.c executor_close_fds.c executor_absolute_path.c \
|
||||||
executor_fork.c executor_absolute_path.c executor_execute_pipeline.c \
|
executor_child.c executor_count_fds.c executor_create_pipes.c \
|
||||||
executor_count_fds.c executor_create_redirects.c executor_open_fds.c \
|
executor_create_redirects.c executor_execute_pipeline.c \
|
||||||
executor_create_pipes.c parser_get_arguments.c parser_new_command.c \
|
executor_fork.c executor_open_fds.c parser_get_arguments.c \
|
||||||
parser_get_commands.c signal.c print_commands.c print_freelist.c \
|
parser_get_commands.c parser_new_command.c signal.c print_commands.c \
|
||||||
expander_expand_dollar.c expander_get_variable.c \
|
print_freelist.c expander_expand_dollar.c expander_is_character.c \
|
||||||
expander_is_character.c expander_parse_variables.c \
|
expander_allocate_memory.c expander_get_variable.c \
|
||||||
expander_parse_string.c expander_allocate_memory.c builtin_cd.c \
|
expander_parse_string.c expander_parse_variables.c builtin_echo.c \
|
||||||
builtin_echo.c builtin_env.c builtin_export.c builtin_pwd.c \
|
builtin_router.c simple_builtins.c is_builtin.c builtin_cd.c \
|
||||||
builtin_router.c builtin_unset.c simple_builtins.c builtin_exit.c \
|
builtin_env.c builtin_exit.c builtin_export.c builtin_pwd.c \
|
||||||
is_builtin.c main.c redirect_get_inputs.c redirect_get_outputs.c \
|
builtin_unset.c redirect_valid_type.c redirect_get_inputs.c \
|
||||||
redirect_new.c redirect_valid_type.c \
|
redirect_get_outputs.c redirect_new.c main.c \
|
||||||
|
|||||||
@ -23,8 +23,8 @@ void print_commands(void *param)
|
|||||||
printf("command: %s\n", command->command);
|
printf("command: %s\n", command->command);
|
||||||
printf("-- Args: ");
|
printf("-- Args: ");
|
||||||
i = 0;
|
i = 0;
|
||||||
while (command->args[i++])
|
while (command->args[i])
|
||||||
printf("%s ", command->args[i]);
|
printf("%s ", command->args[i++]);
|
||||||
printf("\n");
|
printf("\n");
|
||||||
printf("-- Input redirects:\n");
|
printf("-- Input redirects:\n");
|
||||||
ft_lstiter(command->redirect_in, print_redirects);
|
ft_lstiter(command->redirect_in, print_redirects);
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
/* By: qmennen <qmennen@student.codam.nl> +#+ */
|
/* By: qmennen <qmennen@student.codam.nl> +#+ */
|
||||||
/* +#+ */
|
/* +#+ */
|
||||||
/* Created: 2025/02/19 13:57:19 by qmennen #+# #+# */
|
/* Created: 2025/02/19 13:57:19 by qmennen #+# #+# */
|
||||||
/* Updated: 2025/02/25 14:31:33 by whaffman ######## odam.nl */
|
/* Updated: 2025/02/25 17:54:08 by whaffman ######## odam.nl */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -22,7 +22,7 @@ char *expander_allocate_memory(
|
|||||||
t_environment *env;
|
t_environment *env;
|
||||||
char *string;
|
char *string;
|
||||||
|
|
||||||
size = 0;
|
size = 1;
|
||||||
current = variables;
|
current = variables;
|
||||||
while (current)
|
while (current)
|
||||||
{
|
{
|
||||||
@ -37,7 +37,5 @@ char *expander_allocate_memory(
|
|||||||
}
|
}
|
||||||
size += ft_strlen(s);
|
size += ft_strlen(s);
|
||||||
string = malloc_safe(minishell, size);
|
string = malloc_safe(minishell, size);
|
||||||
if (!string)
|
|
||||||
perror("expander malloc");
|
|
||||||
return (string);
|
return (string);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
/* By: whaffman <whaffman@student.codam.nl> +#+ */
|
/* By: whaffman <whaffman@student.codam.nl> +#+ */
|
||||||
/* +#+ */
|
/* +#+ */
|
||||||
/* Created: 2025/02/05 16:01:44 by whaffman #+# #+# */
|
/* Created: 2025/02/05 16:01:44 by whaffman #+# #+# */
|
||||||
/* Updated: 2025/02/25 16:48:39 by whaffman ######## odam.nl */
|
/* Updated: 2025/02/25 17:40:32 by whaffman ######## odam.nl */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -15,7 +15,7 @@
|
|||||||
void free_minishell_line(t_minishell *minishell)
|
void free_minishell_line(t_minishell *minishell)
|
||||||
{
|
{
|
||||||
if (minishell->line)
|
if (minishell->line)
|
||||||
free_safe(minishell, (void **)&(minishell->line));
|
free(minishell->line);
|
||||||
if (minishell->lexer)
|
if (minishell->lexer)
|
||||||
ft_lexer_free(minishell, minishell->lexer);
|
ft_lexer_free(minishell, minishell->lexer);
|
||||||
if (minishell->tokens)
|
if (minishell->tokens)
|
||||||
|
|||||||
@ -6,12 +6,37 @@
|
|||||||
/* By: whaffman <whaffman@student.codam.nl> +#+ */
|
/* By: whaffman <whaffman@student.codam.nl> +#+ */
|
||||||
/* +#+ */
|
/* +#+ */
|
||||||
/* Created: 2025/02/25 15:09:34 by whaffman #+# #+# */
|
/* Created: 2025/02/25 15:09:34 by whaffman #+# #+# */
|
||||||
/* Updated: 2025/02/25 16:00:29 by whaffman ######## odam.nl */
|
/* Updated: 2025/02/25 17:35:39 by whaffman ######## odam.nl */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
#include "minishell.h"
|
#include "minishell.h"
|
||||||
|
|
||||||
|
#include <execinfo.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
/* Obtain a backtrace and print it to stdout. */
|
||||||
|
void
|
||||||
|
print_trace (void)
|
||||||
|
{
|
||||||
|
void *array[10];
|
||||||
|
char **strings;
|
||||||
|
int size, i;
|
||||||
|
|
||||||
|
size = backtrace (array, 10);
|
||||||
|
strings = backtrace_symbols (array, size);
|
||||||
|
if (strings != NULL)
|
||||||
|
{
|
||||||
|
|
||||||
|
printf ("Obtained %d stack frames.\n", size);
|
||||||
|
for (i = 0; i < size; i++)
|
||||||
|
fprintf (stderr, "%s\n", strings[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
free (strings);
|
||||||
|
}
|
||||||
|
|
||||||
void free_safe(t_minishell *minishell, void **ptr)
|
void free_safe(t_minishell *minishell, void **ptr)
|
||||||
{
|
{
|
||||||
t_list *prev;
|
t_list *prev;
|
||||||
@ -37,6 +62,7 @@ void free_safe(t_minishell *minishell, void **ptr)
|
|||||||
current = current->next;
|
current = current->next;
|
||||||
}
|
}
|
||||||
error_msg("free_safe", "pointer not found in freelist");
|
error_msg("free_safe", "pointer not found in freelist");
|
||||||
|
// print_trace();
|
||||||
}
|
}
|
||||||
*ptr = NULL;
|
*ptr = NULL;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
/* By: whaffman <whaffman@student.codam.nl> +#+ */
|
/* By: whaffman <whaffman@student.codam.nl> +#+ */
|
||||||
/* +#+ */
|
/* +#+ */
|
||||||
/* Created: 2025/02/05 16:04:44 by whaffman #+# #+# */
|
/* Created: 2025/02/05 16:04:44 by whaffman #+# #+# */
|
||||||
/* Updated: 2025/02/23 12:31:28 by willem ######## odam.nl */
|
/* Updated: 2025/02/25 17:27:28 by whaffman ######## odam.nl */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -15,7 +15,8 @@
|
|||||||
void print_banner(void)
|
void print_banner(void)
|
||||||
{
|
{
|
||||||
printf("%s\n",
|
printf("%s\n",
|
||||||
"\033[2J\033[1;1H" GREEN
|
// "\033[2J\033[1;1H" GREEN
|
||||||
|
GREEN
|
||||||
" • • ┓ ┓┓\n"
|
" • • ┓ ┓┓\n"
|
||||||
" ┏┳┓┓┏┓┓┏┣┓┏┓┃┃\n"
|
" ┏┳┓┓┏┓┓┏┣┓┏┓┃┃\n"
|
||||||
" ┛┗┗┗┛┗┗┛┛┗┗ ┗┗\n"
|
" ┛┗┗┗┛┗┗┛┛┗┗ ┗┗\n"
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user