Use internal_error over std:: errors
This commit is contained in:
parent
e80a11d730
commit
91a719e534
@ -70,7 +70,7 @@ namespace dbghelp {
|
||||
if(FAILABLE) {
|
||||
return (T)-1;
|
||||
} else {
|
||||
throw std::logic_error(
|
||||
throw internal_error(
|
||||
std::string("SymGetTypeInfo failed: ")
|
||||
+ std::system_error(GetLastError(), std::system_category()).what()
|
||||
);
|
||||
@ -85,7 +85,7 @@ namespace dbghelp {
|
||||
if(
|
||||
!SymGetTypeInfo(proc, modbase, type_index, static_cast<::IMAGEHLP_SYMBOL_TYPE_INFO>(SymType), &info)
|
||||
) {
|
||||
throw std::logic_error(
|
||||
throw internal_error(
|
||||
std::string("SymGetTypeInfo failed: ")
|
||||
+ std::system_error(GetLastError(), std::system_category()).what()
|
||||
);
|
||||
@ -247,7 +247,7 @@ namespace dbghelp {
|
||||
children
|
||||
)
|
||||
) {
|
||||
throw std::logic_error(
|
||||
throw internal_error(
|
||||
std::string("SymGetTypeInfo failed: ")
|
||||
+ std::system_error(GetLastError(), std::system_category()).what()
|
||||
);
|
||||
@ -255,7 +255,7 @@ namespace dbghelp {
|
||||
// get children type
|
||||
std::string extent = "(";
|
||||
if(children->Start != 0) {
|
||||
throw std::logic_error("Error: children->Start == 0");
|
||||
throw internal_error("Error: children->Start == 0");
|
||||
}
|
||||
for(std::size_t i = 0; i < n_children; i++) {
|
||||
extent += (i == 0 ? "" : ", ") + resolve_type(children->ChildId[i], proc, modbase);
|
||||
@ -413,7 +413,7 @@ namespace dbghelp {
|
||||
get_syminit_manager().init(proc);
|
||||
} else {
|
||||
if(!SymInitialize(proc, NULL, TRUE)) {
|
||||
throw std::logic_error("Cpptrace SymInitialize failed");
|
||||
throw internal_error("Cpptrace SymInitialize failed");
|
||||
}
|
||||
}
|
||||
for(const auto frame : frames) {
|
||||
@ -430,7 +430,7 @@ namespace dbghelp {
|
||||
}
|
||||
if(get_cache_mode() != cache_mode::prioritize_speed) {
|
||||
if(!SymCleanup(proc)) {
|
||||
throw std::logic_error("Cpptrace SymCleanup failed");
|
||||
throw internal_error("Cpptrace SymCleanup failed");
|
||||
}
|
||||
}
|
||||
return trace;
|
||||
|
||||
@ -38,7 +38,7 @@ namespace libbacktrace {
|
||||
}
|
||||
|
||||
void error_callback(void*, const char* msg, int errnum) {
|
||||
throw std::runtime_error(stringf("Libbacktrace error: %s, code %d\n", msg, errnum));
|
||||
throw internal_error(stringf("Libbacktrace error: %s, code %d\n", msg, errnum));
|
||||
}
|
||||
|
||||
backtrace_state* get_backtrace_state() {
|
||||
|
||||
@ -110,7 +110,7 @@ namespace detail {
|
||||
get_syminit_manager().init(proc);
|
||||
} else {
|
||||
if(!SymInitialize(proc, NULL, TRUE)) {
|
||||
throw std::logic_error("Cpptrace SymInitialize failed");
|
||||
throw internal_error("Cpptrace SymInitialize failed");
|
||||
}
|
||||
}
|
||||
while(trace.size() < max_depth) {
|
||||
@ -147,7 +147,7 @@ namespace detail {
|
||||
}
|
||||
if(get_cache_mode() != cache_mode::prioritize_speed) {
|
||||
if(!SymCleanup(proc)) {
|
||||
throw std::logic_error("Cpptrace SymCleanup failed");
|
||||
throw internal_error("Cpptrace SymCleanup failed");
|
||||
}
|
||||
}
|
||||
return trace;
|
||||
|
||||
@ -25,7 +25,7 @@ namespace detail {
|
||||
void init(HANDLE proc) {
|
||||
if(set.count(proc) == 0) {
|
||||
if(!SymInitialize(proc, NULL, TRUE)) {
|
||||
throw std::logic_error(stringf("SymInitialize failed %llu", to_ull(GetLastError())));
|
||||
throw internal_error(stringf("SymInitialize failed %llu", to_ull(GetLastError())));
|
||||
}
|
||||
set.insert(proc);
|
||||
}
|
||||
|
||||
@ -28,7 +28,7 @@ namespace libdwarf {
|
||||
char* msg = dwarf_errmsg(error);
|
||||
(void)dbg;
|
||||
// dwarf_dealloc_error(dbg, error);
|
||||
throw std::runtime_error(stringf("Cpptrace dwarf error %u %s\n", ev, msg));
|
||||
throw internal_error(stringf("Cpptrace dwarf error %u %s\n", ev, msg));
|
||||
}
|
||||
|
||||
struct die_object {
|
||||
|
||||
@ -25,6 +25,11 @@ namespace detail {
|
||||
}
|
||||
};
|
||||
|
||||
class file_error : public internal_error {
|
||||
public:
|
||||
file_error(std::string path) : internal_error("Unable to read file " + std::move(path)) {}
|
||||
};
|
||||
|
||||
// Lightweight std::source_location.
|
||||
struct source_location {
|
||||
const char* const file;
|
||||
@ -56,7 +61,7 @@ namespace detail {
|
||||
const char* action = assert_actions[static_cast<std::underlying_type<assert_type>::type>(type)];
|
||||
const char* name = assert_names[static_cast<std::underlying_type<assert_type>::type>(type)];
|
||||
if(message == "") {
|
||||
throw std::logic_error(
|
||||
throw internal_error(
|
||||
stringf(
|
||||
"Cpptrace %s failed at %s:%d: %s\n"
|
||||
" %s(%s);\n",
|
||||
@ -65,7 +70,7 @@ namespace detail {
|
||||
)
|
||||
);
|
||||
} else {
|
||||
throw std::logic_error(
|
||||
throw internal_error(
|
||||
stringf(
|
||||
"Cpptrace %s failed at %s:%d: %s: %s\n"
|
||||
" %s(%s);\n",
|
||||
@ -82,14 +87,14 @@ namespace detail {
|
||||
const std::string& message = ""
|
||||
) {
|
||||
if(message == "") {
|
||||
throw std::logic_error(
|
||||
throw internal_error(
|
||||
stringf(
|
||||
"Cpptrace panic %s:%d: %s\n",
|
||||
location.file, location.line, signature
|
||||
)
|
||||
);
|
||||
} else {
|
||||
throw std::logic_error(
|
||||
throw internal_error(
|
||||
stringf(
|
||||
"Cpptrace panic %s:%d: %s: %s\n",
|
||||
location.file, location.line, signature, message.c_str()
|
||||
|
||||
Loading…
Reference in New Issue
Block a user