当前位置: 首页 > news >正文

扁平化网站导航ui模板网站费用估算

扁平化网站导航ui模板,网站费用估算,wordpress页面自定义数据上传图片,网站开发gxjzdrj打印崩溃调用栈和局部变量信息的方法有所不同。以下是针对 Windows、Linux 和 MacOS 的示例代码。 Windows 在 Windows 上#xff0c;可以使用 Windows API 来捕获异常并打印调用栈。 #include windows.h #include DbgHelp.h #include stdio.h #in…打印崩溃调用栈和局部变量信息的方法有所不同。以下是针对 Windows、Linux 和 MacOS 的示例代码。 Windows 在 Windows 上可以使用 Windows API 来捕获异常并打印调用栈。 #include windows.h #include DbgHelp.h #include stdio.h #include stdlib.h#pragma comment(lib, dbghelp.lib)void print_stack_trace() {const int FRAMES_TO_CAPTURE 64;IMAGEHLP_STACK_FRAME frames[FRAMES_TO_CAPTURE];STACKFRAME64 stack;DWORD machine_type;HANDLE process GetCurrentProcess();DWORD i;SYMBOL_INFOW* symbol_info;DWORD64 displacement;SymInitialize(process, NULL, TRUE);SymSetOptions(SYMOPT_UNDNAME | SYMOPT_LOAD_LINES);ZeroMemory(stack, sizeof(stack));stack.AddrPC.Offset (DWORD_PTR)__debugbreak;stack.AddrPC.Mode AddrModeFlat;stack.AddrFrame.Offset (DWORD_PTR)__security_check_cookie;stack.AddrFrame.Mode AddrModeFlat;stack.AddrStack.Offset (DWORD_PTR)stack;stack.AddrStack.Mode AddrModeFlat;machine_type IMAGE_FILE_MACHINE_UNKNOWN;if (!StackWalk64(machine_type, process, GetCurrentThread(), stack)) {machine_type IMAGE_FILE_MACHINE_I386;if (!StackWalk64(machine_type, process, GetCurrentThread(), stack)) {machine_type IMAGE_FILE_MACHINE_AMD64;if (!StackWalk64(machine_type, process, GetCurrentThread(), stack)) {fprintf(stderr, Failed to determine machine type\n);return;}}}symbol_info (SYMBOL_INFOW*)calloc(sizeof(SYMBOL_INFOW) 256 * sizeof(wchar_t), 1);if (symbol_info NULL) {fprintf(stderr, Failed to allocate memory for symbol_info\n);return;}symbol_info-MaxNameLen 255;symbol_info-SizeOfStruct sizeof(SYMBOL_INFOW);for (i 0; i FRAMES_TO_CAPTURE; i) {if (!StackWalk64(machine_type, process, GetCurrentThread(), stack)) {break;}if (!SymFromAddr(process, stack.AddrPC.Offset, displacement, symbol_info)) {fprintf(stderr, Frame %d: 0x%llx\n, i, stack.AddrPC.Offset);} else {fwprintf(stderr, LFrame %d: %ls 0x%llx\n, i, symbol_info-Name, displacement);}// Print local variables here, but its tricky without proper debugging symbols}free(symbol_info);SymCleanup(process); }void cause_crash() {int *p NULL;*p 1; }int main() {__try {cause_crash();}__except (print_stack_trace(), EXCEPTION_EXECUTE_HANDLER) {exit(EXIT_FAILURE);}return 0; }Linux 在 Linux 上可以使用信号处理和 backtrace 函数来捕获崩溃并打印调用栈。 #include stdio.h #include stdlib.h #include signal.h #include execinfo.h #include unistd.hvoid print_stack_trace() {void *array[10];size_t size;char **strings;size_t i;size backtrace(array, 10);strings backtrace_symbols(array, size);printf(Stack backtrace:\n);for (i 0; i size; i) {printf([bt] %s\n, strings[i]);}free(strings); }void signal_handler(int sig) {print_stack_trace();exit(EXIT_FAILURE); }void cause_crash() {int *p NULL;*p 1; }int main() {signal(SIGSEGV, signal_handler);cause_crash();return 0; }MacOS 在 MacOS 上可以使用类似 Linux 的方法使用 backtrace 和 backtrace_symbols 函数。 #include stdio.h #include stdlib.h #include signal.h #include execinfo.h #include unistd.hvoid print_stack_trace() {void *array[10];size_t size;char **strings;size_t i;size backtrace(array, 10);strings backtrace_symbols(array, size);printf(Stack backtrace:\n);for (i 0; i size; i) {printf([bt] %s\n, strings[i]);}free(strings); }void signal_handler(int sig) {print_stack_trace();exit(EXIT_FAILURE); }void cause_crash() {int *p NULL;*p 1; }int main() {signal(SIGSEGV, signal_handler);cause_crash();return 0; }备注 局部变量打印在崩溃时打印局部变量非常困难因为局部变量可能已经破坏或不可访问。在上述示例中主要展示了如何打印调用栈信息。要获取局部变量的值通常需要启用调试信息并使用调试器如 GDB来解析堆栈帧。 调试符号为了更详细地解析调用栈和局部变量需要在编译时启用调试信息例如在 GCC 中使用 -g 选项。 平台差异不同的操作系统有不同的 API 和方法来处理崩溃和调用栈跟踪因此需要根据具体平台选择相应的方法。
http://www.hkea.cn/news/14456045/

相关文章:

  • 服务平台app下载上海seo推广服务
  • 襄樊公司网站建设做视频网站怎么看不会卡
  • 网站体验方案抖音企业推广
  • 如何把网站推广即墨有做网站的吗
  • 湖南微信网站公司电话号码门户网站建设费用
  • 桃源县建设局网站wordpress模板是什么意思
  • 建设部网站怎么查安全员网站开发需多少钱
  • wordpress 下拉菜单设置大型企业网站优化
  • 中国空间站简介100字网站建设一龙条
  • 网站建设成都公司wordpress链接 拼音
  • 做我的奴隶 good网站郑州企业网站制作怎么做
  • 资阳房地产网站建设建筑工程网络计划图怎么编制
  • 网站后台内容编辑器下载网站自动识别手机代码
  • 长沙景观设计公司seo优化深圳
  • 嘉兴高端网站建设有限公司百度竞价推广的技巧
  • 电子商务网站管理内容怎么建设自己导购网站
  • 南宁网站开发软件广告联盟wordpress
  • 平顶山北京网站建设动态ppt模板下载免费完整版
  • 国家对地理信息网站建设的重视网页设计页面链接
  • 软文新闻发布网站如何建设网址导航网站
  • 海东市公司网站建设郑州工程设计公司官网
  • 适合网站开发的浏览器扬州网络推广公司
  • 酒店网站建设特色成都 视频网站建设
  • dz论坛做视频网站教程前端做项目有哪些网站
  • 商城网站建设价格最优容县住房和城乡建设局网站
  • 安徽网站建设系统装修推广网站哪个好
  • 兑换网站建设搭建流程
  • 上海自适应网站设计神马推广登录
  • 专注聊城做网站的公司学做旗袍衣服的网站
  • 国内网站建设哪家好翻译类公司网站模板