异常信息转储笔记-demangle函数名字符

news2024/12/23 12:34:51

前情

上一篇笔记留下了两个待解决问题,其中之一是输出的函数名被奇怪字符覆盖了一部分,本篇笔记即将解决这个问题(下图问题1)。

 

问题描述

如上,使用libunwind输出core堆栈信息时,有部分字符被覆盖,如下图,虽然老司机能够看明白很多东西,但是观感实在不好。 

解决方案

libc++在底层的abi库中提供了字符反混淆功能,需要添加cxxabi.h头文件

函数原型


char* abi::__cxa_demangle(const char* mangled_name,
                          char * 	output_buffer,
                          size_t * 	length,
                          int * 	status	 
)	

参数

mangled_name A NUL-terminated character string containing the name to be demangled.
output_buffer A region of memory, allocated with malloc, of *length bytes, into which the demangled name is stored. If output_buffer is not long enough, it is expanded using realloc. output_buffer may instead be NULL; in that case, the demangled name is placed in a region of memory allocated with malloc.
length If length is non-NULL, the length of the buffer containing the demangled name is placed in *length.
status *status is set to one of the following values:
  • 0: The demangling operation succeeded.
  • -1: A memory allocation failiure occurred.
  • -2: mangled_name is not a valid name under the C++ ABI mangling rules.
  • -3: One of the arguments is invalid.

返回值

A pointer to the start of the NUL-terminated demangled name, or NULL if the demangling fails. The caller is responsible for deallocating this memory using free.

demo

环境隔离的原因,无法直接复制代码,懒得再敲一遍,拍个图片凑合看吧。

效果展示

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2044166.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

fetch_20newsgroups报错403的两种解决办法

在使用sklearn机器学习库使用fetch_20newsgroups调用数据集时候(如下方代码所示),报错403怎么办,本人亲测两种方法,分享大家: data fetch_20newsgroup(subset"train")一、第一种方法 1.下载压…

十大护眼落地灯品牌中护眼效果最好的是哪款?落地灯十大知名品牌

根据不完全统计,我国儿童青少年的近视率达到了52.7%,也就是说10个孩子中有5个以上的视力都处于一个亚健康的状态,这和户外运动少及室内灯光差有很大关系,在面临这种现状下,很多家长对日常用眼时的光线质量越来越重视&a…

智慧叉车监管系统,司机权限启动车辆,杜绝无证驾驶!

叉车广泛应用于各种生产场所,是常见的一种作业工具。叉车作业具有较大的危险性,司机的不安全操作行为是导致叉车事故发生的主要原因之一。近年来,由于操作人员无证驾驶、违章作业等原因,国内发生了多起叉车安全事故,造…

【爬虫新手村】零基础入门到实战:解锁互联网数据收集的密钥,爬虫技术全攻略

文章目录 前言一、爬虫1.基本概念2.常用库3.基本步骤4.注意事项 二、爬虫示例代码1.案例一:requests 的基本使用2.案例二:爬取古诗文(requestsBeautifulSoup)3.案例三:爬取美食(requestsBeautifulSoup&…

智能语音识别技术在无人驾驶领域的应用案例

随着无人驾驶技术的进步与发展,越来越多的企业、创业者注意到无人驾驶领域潜藏的巨大市场经济价值,越来越多的企业和创业者进入无人驾驶领域,以近期业内关注的萝卜快跑为例,其在武汉地区的成功推广与落地预示着无人驾驶在网约车领…

Linux的应用领域与历史发展

目录 linux应用领域 个人桌面领域的应用 服务器领域 嵌入式领域 linux概述 linux和unix的关系 linux应用领域 linux下开发项目,javaee,大数据,python,php,c,c,go等。 个人桌面领域的应…

DHU OJ 二维数组

思路及代码 #include<iostream> using namespace std; int main(){ //input 多组 //input M,N int 1< <20 //input M 行 N 列 数据 //initialize listint M, N;while (cin >> M >> N){int list[M][N];for (int i 0; i < M-1; i){for (int j 0; j…

基于价值流DevSecOps效能案例分享

背景 数字经济时代&#xff0c;企业数字化转型加速&#xff0c;软件业务收入目标设定&#xff0c;产业基础保障水平提升。DevSecOps: 作为解决交付能力挑战的方法&#xff0c;强调开发&#xff08;Dev&#xff09;、安全&#xff08;Sec&#xff09;、运维&#xff08;Ops&…

替代进程注入的新工具

目录 前言 Windows Session 的利用 Windows Session 介绍 跨会话激活技术 什么是跨会话激活机制&#xff1f; 常见的跨会话激活技术 结合利用 地址 前言 众所周知&#xff0c;常用的C2工具&#xff08;例如CobaltStrike&#xff09;在另一个进程上下文中执行代码经常使…

【安全科普】学完网络安全出去能做什么工作?

想要了解学完网络安全工程师就业班后&#xff0c;出去能做什么工作&#xff0c;这个时候会分甲方或是乙方&#xff0c;看个人更偏向哪个岗位。 甲方指的是政府、海关、税务机构、高校及其他国有银行、商业银行&#xff0c;以及移动运营商&#xff08;如中国移动、中国联通、中…

如何保证数据不丢失?(死信队列)

死信队列 1、什么是死信 死信通常是消息在特定的场景下表现&#xff1a; 消息被拒绝访问消费者发生异常&#xff0c;超过重试次数消息的Expiration过期时长或者队列TTL过期时间消息队列到达最大容量 maxLength 2、什么是死信队列 只由死信构成的消息队列是死信队列 死信队…

积加ERP与金蝶云星空对接集成FBA月度差异打通其他出库新增

积加ERP与金蝶云星空对接集成FBA月度差异打通其他出库新增 对接源平台:积加ERP 积加创始人及核心产品技术团队&#xff0c;深耕于跨境电商技术领域十余年&#xff0c;深刻领悟卖家在Amazon业务运营各环节的核心诉求&#xff0c;结合多年技术管理经验&#xff0c;全面考虑中国卖…

实用好软-----超简单的图片加水印工具 方便 实用 避免盗用

日常生活中&#xff0c;我们经常在图片或者视频上看到一些具有独特设计的文字或者图片&#xff0c;并且下载后依旧会存在于其中&#xff0c;这种常见的标识叫做——水印。 一.水印&#xff1f; 随着人们版权意识的觉醒&#xff0c;越来越多的人为了防止自己的图片被盗用&#…

visual studio2022如何安装.net framework4.0

visual studio2022如何安装.net framework4.0 背景 老版本代码.Net Framework4.0,visual studio2022不支持,可以通过导入包来解决。 解决办法 通过 nuget 下载 4.0 安装包 下载地址&#xff1a;https://www.nuget.org/packages/Microsoft.NETFramework.ReferenceAssemblie…

MapStruct 实体类转换工具,看这一篇就够了!

前言 DTO&#xff08;Data Transfer Object&#xff09;&#xff1a;数据传输对象&#xff0c;这个概念来源于J2EE的设计模式&#xff0c;原来的目的是为了EJB的分布式应用提供粗粒度的数据实体&#xff0c;以减少分布式调用的次数&#xff0c;从而提高分布式调用的性能和降低…

基于NXP IMX8P+FPGA+AI全自动化学发光免疫分析仪解决方案

全自动化学发光免疫分析仪 全自动化学发光免疫分析仪可对受试者的全血、血清、血浆标本进行分析&#xff0c;从而制定科学的治疗或者处置方案。 IMX8P采用Cortex-A53架构四核处理器&#xff0c;主频高达1.8GHz&#xff0c;标配2G内存&#xff0c;强劲的视频处理能力搭配高版本…

贪心算法总结(4)

一、跳跃游戏I 55. 跳跃游戏 - 力扣&#xff08;LeetCode&#xff09; class Solution { public:bool canJump(vector<int>& nums) {//贪心双指针 用left和right指向两个区间 然后maxpos表示下一层的最右端点int left0,right0,maxpos0,nnums.size();while(left<…

《乳腺密度高的女性中,使用AI辅助的乳腺X线筛查与补充筛查超声的比较研究》| 文献速递-基于深度学习的乳房、前列腺疾病诊断系统

Title 题目 Screening Outcomes of Mammography with AI in Dense Breasts: A Comparative Study with Supplemental Screening US 《乳腺密度高的女性中&#xff0c;使用AI辅助的乳腺X线筛查与补充筛查超声的比较研究》 Background 背景 Comparative performance between…

html+css 实现hover 故障效果按钮

前言:哈喽,大家好,今天给大家分享html+css 实现hover 故障效果按钮!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕 目录 📚一、效果📚二、原理解析💡1.这是一个,鼠标hover时,显示故障的效…

WechatBotCMD:通过命令行接口实现微信机器人自动化

WechatBotCMD&#x1f916;&#xff1a;通过命令行接口实现微信机器人自动化 WechatBotCMD简介WechatBotCMD的核心功能1. **命令行界面 (CLI)**2. **消息处理与自动回复**3. **定时任务**4. **群聊管理**5. **配置管理** 如何安装或引入 WechatBotCMDWechatBotCMD使用示例启动和…