revert: remove stacktrace feature for rust panic.
- remove stacktrace feature for rust panic function due to not all STL are ready for this. - add more os type in CMake file. - add lost header in fopen.
This commit is contained in:
		@ -1,5 +1,6 @@
 | 
			
		||||
#pragma once
 | 
			
		||||
#include <memory>
 | 
			
		||||
#include <cstdio>
 | 
			
		||||
 | 
			
		||||
namespace yycc::patch::fopen {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -4,13 +4,19 @@
 | 
			
		||||
#include <cstdlib>
 | 
			
		||||
#include <iomanip>
 | 
			
		||||
#include <iostream>
 | 
			
		||||
#include <stacktrace>
 | 
			
		||||
 | 
			
		||||
#define TERMCOLOR ::yycc::carton::termcolor
 | 
			
		||||
#define REINTERPRET ::yycc::string::reinterpret
 | 
			
		||||
 | 
			
		||||
namespace yycc::rust::panic {
 | 
			
		||||
 | 
			
		||||
    // TODO:
 | 
			
		||||
    // I sadly remove the stacktrace feature for panic function.
 | 
			
		||||
    // Because in GCC, it has link error (can be fixed by extra link option).
 | 
			
		||||
    // In Clang, it even lack the whole header file.
 | 
			
		||||
    // It seems that STL providers are not ready for this feature. So I decide remove it entirely.
 | 
			
		||||
    // Once every STL probiders have ready for this, I will add it back.
 | 
			
		||||
 | 
			
		||||
    void panic(const char* file, int line, const std::string_view& msg) {
 | 
			
		||||
        // Output message in stderr.
 | 
			
		||||
        auto& dst = std::cerr;
 | 
			
		||||
@ -22,9 +28,6 @@ namespace yycc::rust::panic {
 | 
			
		||||
        dst << "program paniked at " << std::quoted(file) << ":Ln" << line << std::endl;
 | 
			
		||||
        // User custom message
 | 
			
		||||
        dst << "note: " << msg << std::endl;
 | 
			
		||||
        // Stacktrace message if we support it.
 | 
			
		||||
        dst << "stacktrace: " << std::endl;
 | 
			
		||||
        dst << std::stacktrace::current() << std::endl;
 | 
			
		||||
        // Restore color
 | 
			
		||||
        dst << REINTERPRET::as_ordinary_view(TERMCOLOR::reset());;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user