mirror of
https://github.com/Fennix-Project/Kernel.git
synced 2025-05-28 15:34:33 +00:00
Debug what destructors are called
This commit is contained in:
parent
47a10df568
commit
5257ff662f
@ -663,14 +663,14 @@ namespace CrashHandler
|
|||||||
|
|
||||||
if (Frame->cs != GDT_USER_CODE && Frame->cs != GDT_USER_DATA)
|
if (Frame->cs != GDT_USER_CODE && Frame->cs != GDT_USER_DATA)
|
||||||
{
|
{
|
||||||
debug("Exception in kernel mode (ip: %#lx, cr2: %#lx)", Frame->rip, PageFaultAddress);
|
debug("Exception in kernel mode (ip: %#lx (%s), cr2: %#lx)", Frame->rip, KernelSymbolTable ? KernelSymbolTable->GetSymbolFromAddress(Frame->rip) : "No symbol", PageFaultAddress);
|
||||||
if (TaskManager)
|
if (TaskManager)
|
||||||
TaskManager->Panic();
|
TaskManager->Panic();
|
||||||
Display->CreateBuffer(0, 0, SBIdx);
|
Display->CreateBuffer(0, 0, SBIdx);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
debug("Exception in user mode (ip: %#lx, cr2: %#lx)", Frame->rip, PageFaultAddress);
|
debug("Exception in user mode (ip: %#lx (%s), cr2: %#lx)", Frame->rip, KernelSymbolTable ? KernelSymbolTable->GetSymbolFromAddress(Frame->rip) : "No symbol", PageFaultAddress);
|
||||||
CPUData *data = GetCurrentCPU();
|
CPUData *data = GetCurrentCPU();
|
||||||
if (!data)
|
if (!data)
|
||||||
{
|
{
|
||||||
@ -715,7 +715,7 @@ namespace CrashHandler
|
|||||||
asmv("mov %%ds, %0"
|
asmv("mov %%ds, %0"
|
||||||
: "=r"(ds));
|
: "=r"(ds));
|
||||||
|
|
||||||
EHPrint("\eFF0000FS=%#llx GS=%#llx SS=%#llx CS=%#llx DS=%#llx\n",
|
EHPrint("\eFF2525FS=%#llx GS=%#llx SS=%#llx CS=%#llx DS=%#llx\n",
|
||||||
CPU::x64::rdmsr(CPU::x64::MSR_FS_BASE), CPU::x64::rdmsr(CPU::x64::MSR_GS_BASE),
|
CPU::x64::rdmsr(CPU::x64::MSR_FS_BASE), CPU::x64::rdmsr(CPU::x64::MSR_GS_BASE),
|
||||||
Frame->ss, Frame->cs, ds);
|
Frame->ss, Frame->cs, ds);
|
||||||
EHPrint("R8=%#llx R9=%#llx R10=%#llx R11=%#llx\n", Frame->r8, Frame->r9, Frame->r10, Frame->r11);
|
EHPrint("R8=%#llx R9=%#llx R10=%#llx R11=%#llx\n", Frame->r8, Frame->r9, Frame->r10, Frame->r11);
|
||||||
|
@ -153,5 +153,6 @@ namespace Disk
|
|||||||
|
|
||||||
Manager::~Manager()
|
Manager::~Manager()
|
||||||
{
|
{
|
||||||
|
debug("Destructor called");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -202,6 +202,8 @@ namespace Driver
|
|||||||
|
|
||||||
Driver::~Driver()
|
Driver::~Driver()
|
||||||
{
|
{
|
||||||
|
debug("Destructor called");
|
||||||
|
this->UnloadAllDrivers();
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(__amd64__)
|
#if defined(__amd64__)
|
||||||
|
@ -71,6 +71,7 @@ namespace Power
|
|||||||
|
|
||||||
Power::~Power()
|
Power::~Power()
|
||||||
{
|
{
|
||||||
|
debug("Destructor called");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -79,5 +79,6 @@ namespace Time
|
|||||||
|
|
||||||
time::~time()
|
time::~time()
|
||||||
{
|
{
|
||||||
|
debug("Destructor called");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -311,7 +311,11 @@ namespace Video
|
|||||||
|
|
||||||
Display::~Display()
|
Display::~Display()
|
||||||
{
|
{
|
||||||
for (int i = 0; i < 16; i++)
|
debug("Destructor called");
|
||||||
DeleteBuffer(i);
|
this->ClearBuffer(0);
|
||||||
|
this->SetBuffer(0);
|
||||||
|
|
||||||
|
for (size_t i = 0; i < sizeof(this->Buffers) / sizeof(this->Buffers[0]); i++)
|
||||||
|
this->DeleteBuffer(i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -621,6 +621,6 @@ namespace VirtualFileSystem
|
|||||||
|
|
||||||
Virtual::~Virtual()
|
Virtual::~Virtual()
|
||||||
{
|
{
|
||||||
trace("Destroying virtual file system...");
|
debug("Destructor called");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -217,7 +217,7 @@ Exit:
|
|||||||
if (ExitCode != 0)
|
if (ExitCode != 0)
|
||||||
{
|
{
|
||||||
KPrint("Dropping to recovery screen...", ExitCode);
|
KPrint("Dropping to recovery screen...", ExitCode);
|
||||||
TaskManager->Sleep(5000);
|
TaskManager->Sleep(2500);
|
||||||
RecoveryScreen = new Recovery::KernelRecovery;
|
RecoveryScreen = new Recovery::KernelRecovery;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -356,17 +356,13 @@ EXTERNC __no_stack_protector __no_instrument_function void BeforeShutdown()
|
|||||||
delete NIManager;
|
delete NIManager;
|
||||||
|
|
||||||
delete DiskManager;
|
delete DiskManager;
|
||||||
if (DriverManager)
|
|
||||||
DriverManager->UnloadAllDrivers();
|
|
||||||
delete DriverManager;
|
delete DriverManager;
|
||||||
|
|
||||||
TaskManager->SignalShutdown();
|
TaskManager->SignalShutdown();
|
||||||
delete TaskManager;
|
delete TaskManager;
|
||||||
|
if (RecoveryScreen)
|
||||||
delete RecoveryScreen;
|
delete RecoveryScreen;
|
||||||
delete vfs;
|
delete vfs;
|
||||||
delete TimeManager;
|
delete TimeManager;
|
||||||
delete KernelSymbolTable;
|
|
||||||
delete Display;
|
delete Display;
|
||||||
// PowerManager should not be called
|
// PowerManager should not be called
|
||||||
|
|
||||||
|
@ -34,6 +34,8 @@ namespace NetworkInterfaceManager
|
|||||||
|
|
||||||
NetworkInterface::~NetworkInterface()
|
NetworkInterface::~NetworkInterface()
|
||||||
{
|
{
|
||||||
|
debug("Destructor called");
|
||||||
|
|
||||||
// Stop the network stack
|
// Stop the network stack
|
||||||
this->StopNetworkStack();
|
this->StopNetworkStack();
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@ namespace Recovery
|
|||||||
|
|
||||||
gui = new GraphicalUserInterface::GUI;
|
gui = new GraphicalUserInterface::GUI;
|
||||||
|
|
||||||
// TaskManager->CreateThread(proc, (IP)RecoveryThreadWrapper, nullptr, nullptr, auxv);
|
// TaskManager->CreateThread(TaskManager->GetCurrentProcess(), (IP)RecoveryThreadWrapper);
|
||||||
TCB *guiThread = TaskManager->CreateThread(TaskManager->GetCurrentProcess(), (IP)GUIWrapper);
|
TCB *guiThread = TaskManager->CreateThread(TaskManager->GetCurrentProcess(), (IP)GUIWrapper);
|
||||||
guiThread->Rename("GUI Thread");
|
guiThread->Rename("GUI Thread");
|
||||||
guiThread->SetPriority(Tasking::TaskPriority::Critical);
|
guiThread->SetPriority(Tasking::TaskPriority::Critical);
|
||||||
@ -57,6 +57,7 @@ namespace Recovery
|
|||||||
|
|
||||||
KernelRecovery::~KernelRecovery()
|
KernelRecovery::~KernelRecovery()
|
||||||
{
|
{
|
||||||
|
debug("Destructor called");
|
||||||
delete gui;
|
delete gui;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user