An Arduino program is returning to the setup function

I have a fairly long program in Arduino (+-2000 lines) (I use the Mega2560 - 8KB from SRAM). Even so, at the moment I only use 50% of the SRAM in global variables (I have controlled the local variables, which consume very little memory, therefore, I do not have memory problems). The problem is that, suddenly and always when you get to the same line, the program returns to the initial setup and starts again. I think the problem is related to the use of the F () function, with which I keep many strings that I show by the serial port in the flash memory (program memory). Does anyone think it could be?

A small summary of my problem would be the following:

...
void setup() {
Serial.begin(9600);
Serial.println(F("Point 1"));
doSomething1();
...
}

void loop() {
...
...
...
}

void doSomething1() {
...
Serial.println(F("Point 2"));
doSomething2();
...
}

void doSomething2() {
...
Serial.println(F("Point 3"));
...
}

Explanation: the program starts by showing "Point 1" through the serial port, does what it has to do in the setup, and finally gets into the doSomething1() function. In this, keep doing things until you get to "doSomething2()". This function is called, it starts to run and, when writing through the serial port "Point 3", instead of doing so, what happens is that it writes it halfway and returns to the beginning of the setup. For the serial port it would look something like this:

Point 1
Point 2
Poi¿Point 1
Point 2
Poi¿Point 1
...

PS1: remember that it is a summary! I just edited it to be more precise!

PS2: i just uploaded the code! (the comments and the log are written in Catalan) If you look at the serial port, you will see the log (although it may vary a bit at the beginning since neither the RTC nor the ethernet module will be found):

CONFIGURANT TOT EL SISTEMA...


Configurant el servidor web...
La IP local del servidor és: 192.168.2.170
El port pel qual es comunica és: 5400


Cercant el RTC...
S'ha trobat el RTC. Es podrà guardar la data i l'hora de mostreig de les sondes.


Inicialitzant la targeta micro SD...
ERROR - La inicialització de la targeta micro SD ha fallat! Tornant a provar d'inicialitzar-la...
ERROR - La inicialització de la targeta micro SD ha fallat! Tornant a provar d'inicialitzar-la...
ERROR - La inicialització de la targeta micro SD ha fallat! Tornant a provar d'inicialitzar-la...
ERROR - La inicialització de la targeta micro SD ha fallat! Tornant a provar d'inicialitzar-la...
No s'ha pogut inicialitzar la targeta micro SD, per tant, no es podrà fer servir aquesta per a guardar dades i servir arxius als clients.


L'Arduino es quedarà esperant que l'usuari el reiniciï manualment per tal de tornar a provar d'inicialitzar la targeta micro SD.


Cercant dispositius...
S'han trobat 2 dispositius.


El mode paràsit està OFF.


Dispositiu trobat número 0 amb adreça: 28FF8843B3170151
La resolució configurada per aquesta sonda és de 9 bits.


Dispositiu trobat número 1 amb adreça: 28FFD243B3170179
La resolució configurada per aquesta sonda és de 9 bits.


S'està procedint a l'emmagatzemament a nivell local dels 'alias' de cada sonda configurats al registre de temperatura...


No s'ha pogut obrir l'arxiu alias.txt en mode lectura.


S'està procedint a l'emmagatzemament a nivell local dels temps de mostreig de cada sonda configurats al registre de temperatura...


No s'ha pogut obrir l'arxiu sampling.txt en mode lectura.


S'està procedint a l'emmagatzemament a nivell local del nom del fitxer més recent on es guarden les temperatures de cada sonda inclosa al registre de temperatura...


No s'ha pogut obrir l'arxiu files.txt en mode lectura.


Procedint a l'assignament d'alias i de temps de mostreig a les sondes connectades a l'Arduino, així com la creació dels directoris i arxius necessaris per a l'emmagatzemament de temperatures...


Identificador de sonda: 28FF8843B3170151

Aquesta sonda no està inclosa al registre de temperatura.

Configurant un nou 'alias'...

El seu 'alias' serà sondaA.

No s'ha pogut obrir l'arxiu 'alias.txt' en mode escriptura.

Configurant un temps de mostreig de 20 segons.
No s'ha p⸮CONFIGURANT TOT EL SISTEMA... ->>>> Here is the problem!!!


Configurant el servidor web...
La IP local del servidor és: 192.168.2.170
El port pel qual es comunica és: 5400
...(and it continues like this in a loop)

Thank you very much!

(deleted)

You're right. I just uploaded the code and the log!

TY!

I have found the problem! I explain:

I was doing tests to see what would happen if the program tried to work without an SD card. As you can not initialize it since it is not there, trying to create a directory with 'mkdir' causes a serious error (I do not know exactly what it is) that crashes the program and causes it to run again from the beginning!

Regards!

PS: I was going crazy! XD