stack corruption detected (-fstack-protector)

2023-05-16

栈发生错误崩溃问题调查

android 升级 ndk版本后,一些操作后导致 so崩溃,具体堆栈如下所示

   #00 pc 00065648  /apex/com.android.runtime/lib/bionic/libc.so (abort+171)
    #01 pc 000739bb  /apex/com.android.runtime/lib/bionic/libc.so (__stack_chk_fail+10)
    #02 pc 0005d1f4  /data/app/~~g2bAhqG8_OlMwAo21ToyxA==/5qj6wphhmTmk1MARgm0QSw==/lib/arm/libtemp.so
    #03 pc 0005d67c  /data/app/~~g2bAhqG8_OlMwAo21ToyxA==/-5qj6wphhmTmk1MARgm0QSw==/lib/arm/libtemp.so
    #04 pc 0005db1c  /data/app/~~g2bAhqG8_OlMwAo21ToyxA==/-5qj6wphhmTmk1MARgm0QSw==/lib/arm/libtemp.so
    #05 pc 0005c050  /data/app/~~g2bAhqG8_OlMwAo21ToyxA==/-5qj6wphhmTmk1MARgm0QSw==/lib/arm/libtemp.so
    #06 pc 0005baa4  /data/app/~~g2bAhqG8_OlMwAo21ToyxA==/-5qj6wphhmTmk1MARgm0QSw==/lib/arm/libtemp.so
    #07 pc 0004f594  /data/app/~~g2bAhqG8_OlMwAo21ToyxA==/-5qj6wphhmTmk1MARgm0QSw==/lib/arm/libtemp.so (nativeCEHD_ProcessData+48)
    #08 pc 00205223  /data/app/~~g2bAhqG8_OlMwAo21ToyxA==/-5qj6wphhmTmk1MARgm0QSw==/oat/arm/base.odex (art_jni_trampoline+82)
    #09 pc 00259d53  /data/app/~~g2bAhqG8_OlMwAo21ToyxA==/-5qj6wphhmTmk1MARgm0QSw==/oat/arm/base.odex (com.mediarecorder.engine.internal_onProcessData+98)

大体也能猜到什么问题

解决思路是

1. 首先通过ndk的addr2line 工具找到了崩溃的对应的哪一行

~/Documents/workspace/android-ndk-r21e/toolchains/aarch64-linux-android-4.9/prebuilt/darwin-x86_64/bin/aarch64-linux-android-addr2line -C -f -e ~/Desktop/libtemp.so 00000000005d1f4

2. 根据文件行号找到有可能越界的点

        最终发现代码指针在32位传递是有问题的

 也就是说 在32位机上指针,通过强制转换64位,进行赋值导致了越界,因此这个只要改成对应的指针强转就好了,

总结:

        看起来很难解决的崩溃,往往只是由最简单的错误引起的

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

stack corruption detected (-fstack-protector) 的相关文章

  • C++/C/Java:Anagrams - 从原始字符串到目标;

    我正在尝试解决这个问题 http uva onlinejudge org external 7 732 html http uva onlinejudge org external 7 732 html 对于给定的示例 他们给我们原始单词
  • 设计一个也可以在 O(1) 摊余时间内出队的堆栈?

    我有一个抽象数据类型 可以将其视为从左到右存储的列表 具有以下可能的操作 推送 将新项目添加到列表的左端 Pop 删除列表左端的项目 Pull 删除列表右端的项目 使用三个堆栈和恒定的附加内存来实现此目的 以便任何推入 弹出或拉出操作的摊销
  • Linux 内核如何强制堆栈大小限制?

    我知道堆栈大小可以通过限制工具进行控制 但是内核如何强制执行其中一些限制 例如 RLIMIT STACK 由于linux不涉及堆栈操作 只是mov或push指令 那么当超出限制时内核如何发出SIGSEGV 据我了解 对于虚拟寻址 CPU 提
  • 如何用一个数组实现3个栈?

    有时 我会遇到以下面试问题 如何用一个数组实现3个堆栈 当然 任何静态分配都不是解决方案 空间 而非时间 高效 你可以 1 定义两个堆栈 从数组端点开始并沿相反方向增长 2 将第三个堆栈定义为从中间开始并向您想要的任何方向增长 3 重新定义
  • ARM GCC 生成函数序言

    我提到 ARM 工具链可以生成不同的函数序言 实际上 我看到两个 obj 文件 vmlinux 具有完全不同的函数序言 第一种情况如下所示 push some registers maybe fp lr lr ommited in leaf
  • C语言函数指针内存解释

    include
  • 第一次捆绑安装,堆栈级别太深

    我使用命令创建了一个全新的 Rails 项目rails new qbc database mysql 它完美地创建了所有文件 但是 在捆绑包安装时出现错误 bundle install Fetching gem metadata from
  • Visual C++ 发行版本 - 当通过 DLL 传递时,字符串是否会因为使用不同的运行时版本编译而损坏?

    在发布模式下构建后 我看到了在调试模式下未发生的异常 调试发布版本时 字符串引用似乎没有从 EXE 我们的应用程序 正确传递到接收字符串引用的 DLL 我们的 EXE 代码如下所示 string contents handle messag
  • 如果堆栈在数字较低的地址处增长,为什么指针比较会颠倒这一点?

    由于堆栈向下增长 即朝着数值较小的内存地址增长 为什么 i lt j是真的 如果我错了 请纠正我 但我想这是 C 创建者 C 维护的 的设计决定 但我想知道为什么 同样奇怪的是 堆分配的对象pin位于比堆栈变量在数值上更高的内存地址 这也与
  • iOS 如何以编程方式检测顶视图控制器何时弹出?

    假设我有一个带有 2 个视图控制器的导航控制器堆栈 VC2 位于顶部 VC1 位于底部 我可以在 VC1 中包含一些代码来检测 VC2 刚刚从堆栈中弹出吗 由于我试图从 VC1 的代码中检测 VC2 的弹出 似乎类似视图将出现 or 查看是
  • 如何在 Kotlin 中使用堆栈?

    如何在 Kotlin 中使用 Stack 来自 java 或者还有其他替代方案吗 我正在尝试将列表转换为堆栈 科特林 1 3 70介绍了kotlin collections ArrayDeque https kotlinlang org a
  • 什么会导致 Valgrind 堆栈跟踪中出现奇怪的地址?

    这个问题与从 valgrind 输出中过滤掉垃圾 https stackoverflow com questions 34325305 filtering out junk from valgrind output 我正在尝试调试一个大型项
  • 使用callstack在C中实现堆栈数据结构?

    我对 C 下内存结构的理解是 程序的内存与堆栈和堆分开 每个堆栈和堆都从块的两端生长 可以想象分配所有 RAM 但显然抽象为某种操作系统内存片段管理器 堆栈设计用于处理局部变量 自动存储 堆设计用于内存分配 动态存储 编者注 有一些 C 实
  • 为什么堆上的内存分配比堆栈上的内存分配慢得多?

    我已经被告知很多次了 但我不知道为什么 从堆分配内存时会涉及哪些额外成本 与硬件有关吗 与CPU周期有关吗 这么多的猜测 但没有确切的答案 有人能给我一些详细说明吗 正如 unwind 所说 Heap数据结构比Stack更复杂 在我看来 当
  • 修改栈上的返回地址

    我研究了缓冲区溢出漏洞的基础知识 并尝试了解堆栈是如何工作的 为此 我想编写一个简单的程序 将返回地址的地址更改为某个值 有人可以帮助我计算基指针的大小以获得第一个参数的偏移量吗 void foo void char ret char pt
  • 使用javascript对堆栈元素进行排序

    我试图理解使用递归对堆栈元素进行排序http www geeksforgeeks org sort a stack using recursion http www geeksforgeeks org sort a stack using
  • 奇怪的 MSC 8.0 错误:“ESP 的值未在函数调用中正确保存...”

    我们最近尝试将一些 Visual Studio 项目分解为库 并且在测试项目中一切似乎都编译和构建得很好 其中一个库项目作为依赖项 然而 尝试运行该应用程序给我们带来了以下令人讨厌的运行时错误消息 运行时检查失败 0 ESP 的值未在函数调
  • 如何从 obj-c / ios 中的堆栈跟踪获取源代码行

    I use NSSetUncaughtExceptionHandler将堆栈跟踪打印到 iPhone 中的本地文件 该文件将在下次应用程序启动时发送到我们的服务器 然后我可以检查异常数据并修复错误 在某些崩溃中 我有模块名称和引发异常的函数
  • 如何检查 uiviewcontroller 是否存在于 uinavigationcontroller 堆栈中

    我有一个UINavigationController 我必须从 a 中弹出一个视图UINavigationController并将其替换为另一个视图 我们如何才能搜索到一个UIViewController对象并将其替换为另一个 当我打印时
  • 哪个更快:堆栈分配或堆分配

    这个问题听起来可能相当简单 但这是我与另一位合作的开发人员进行的辩论 我小心翼翼地在可能的地方进行堆栈分配 而不是堆分配它们 他一边跟我说话 一边看着我 并评论说没有必要 因为他们的表现是一样的 我总是有这样的印象 堆栈的增长是恒定的时间

随机推荐

  • Ubuntu的软件包格式是deb,alien 把rpm转换成deb

    Ubuntu的软件包格式是deb xff0c 如果要安装rpm 的包 xff0c 则要先用alien 把rpm转换成deb sudo apt get install alien alien 默认没有安装 xff0c 所以首先要安装它 sud
  • 安装oh-my-posh 将PowerShell 更改为 oh-my-zsh 样式

    目录 安装oh my posh 将PowerShell 更改为 oh my zsh 样式安装 oh my posh支持中文设置主题 安装oh my posh 将PowerShell 更改为 oh my zsh 样式 参考文章 xff1a p
  • IDEA导入springboot gradle文件详解及错误解析

    一 准备环境 1 jdk1 8 11都可以 验证安装成功 win 43 R cmd 输入java version 出现版本即为成功 2 idea注意社区版是不支持springboot的 xff0c 需要安装插件 xff0c 我改成了其他版本
  • Linux网络相关的命令、firewalld和netfilter、netfilter5表5链介绍、iptables语法

    一 Linux网络相关的一些命令 1 查看网卡的命令 ifconfig a ip addr 这两个命令都可以查看网卡 xff0c 当网卡down掉的时候是看不到的 xff0c 使用 a可以查看到 ifdown ifup 43 网卡名 可以关
  • 电子邮件使用中常见错误提示解释

    电子邮件使用中常见错误提示解释 电子邮件使用中常见错误提示解释 xff0d xff0d 发信 收信和退信 引言 xff1a 在使用电子邮件的过程中经常会出现邮件无法 发出 xff0c 发出后被退回 xff0c 或者无法收取邮件的提示 邮件系
  • 简单搭建ESXI服务器管理系统

    简单搭建ESXI服务器管理系统 esxi全称 VMware ESXi xff0c 是可直接安装在物理服务器上的强大的裸机管理系统 xff0c 是一款虚拟软件 xff1b ESXi本身可以看做一个操作系统 xff0c 采用Linux内核 xf
  • Centos安装Nodejs简单方式

    Node js 是一个基于 Chrome V8 引擎的 JavaScript 运行时 本文主要讲的是如何在Linux即Centos上安装Nodejs的简单方式 xff0c 有比设置环境变量更加简单的方式 xff0c 那就是设置软链接 xff
  • 部署Docker管理面板Portainer

    相信很多人都会遇到部署了docker后想要有个可以管理的控制台 xff0c 方便我们对docker服务进行管理 xff0c 查看日志 查看内存占用等等 xff0c 虽然docker命令都能查看 xff0c 但是肯定没有图表可视化等来得更有效
  • 不忘初心•砥砺前行——江苏叁拾柒号仓智能科技有限公司2019年中总结会

    2019年7月20日上午 xff0c 江苏叁拾柒号仓智能科技有限公司 下称37号仓 2019年中总结会在集团1楼多媒体厅隆重举行 xff0c 37号仓执行董事魏标 xff0c 总经理卞石磊 xff0c 子雨集团党支部书记 工会主席徐伟 xf
  • 前后端分离开发工具YAPI部署记录

    之前公司说要建立起前后端分离开发模式 xff0c 而我只是刚毕业 xff0c 让我负责建立起这个规范 xff0c 虽然刚毕业还没去大厂待过 xff0c 对我来说是个挑战 xff0c 只能按我理解和网上的方案进行建立 在 Google 和 g
  • Docker定时删除none镜像

    在使用docker的时候会产生none镜像文件 xff0c 偶尔没什么 xff0c 但是比如使用了自动化部署工具那就不一样了 xff0c 一天没准就上百个none镜像了 xff0c 非常消耗资源 xff0c 所以需要定时清理 删除 none
  • 升级黑苹果EFI内OpenCore和驱动等

    之前给我电脑适配过黑苹果EFI xff0c 是在前辈放弃的项目上适配的 我测试使用的时候各种bug xff0c 经过我的修复接近完美 xff0c 但是由于wifi网速慢一直没用 xff0c 今天看到itlwm更新日志里面有对我电脑网卡进行性
  • 通过 VNC 客户端远程连接 CentOS 7 图形化界面

    文章目录 一 场景介绍二 名词解释三 CentOS 图形安装四 VNC 服务端安装五 VNC 客户端连接 一 场景介绍 在某些特定场景下 xff0c 我们需要通过 Linux 环境来调试代码 xff0c 比如 Shell 脚本的调试 如果每
  • CAAnimation——基本动画,关键帧动画和贝塞尔路径

    概述 在做对于图层的动画效果时 xff0c 往往直接改变属性或者使用隐式动画是不能满足我们的需求的 xff0c 所以我们就用到了显式动画 xff0c CAAnimation 它可以管理重复动画 准确的控制时间和步调 xff0c 并且能设定图
  • IOS详解TableView——性能优化及手工绘制UITableViewCell

    提高表视图的性能 UITableView作为应用中最常用的视图 xff0c 它的性能优化问题几乎是经常提及 下面对在非网络访问情况下的表视图性能优化进行了主要的几点说明 xff1a 1 自定义类或XIB文件时 在系统提供的样式不能满足我们的
  • IOS详解TableView——实现九宫格效果

    根据需求九宫格的效果可以有很多种 九宫格效果应用比较广泛 xff0c 实现也多种多样 xff0c 比如选项抽屉效果 这里写了一个在UITableView上显示九宫格效果的Demo 思路 xff1a 在Cell上初始化自定义按钮 xff0c
  • IOS详解TableView——内置刷新,EGO,以及搜索显示控制器

    这几天因为住的地方的网出了一点问题 xff0c 除了能上Q xff0c 上微博以外其他的网页全都无法登陆 博客也就没有跟进 今天恢复了 xff0c 所以继续更新博客 也希望大家能继续评论或私自给我一些建议或者交流 今天找到了以前一个Tabl
  • IOS回调机制——代理,通知中心以及Block

    Xcode5 0正式版 IOS7和Xcode5正式版在昨天正式可以下载 IOS7不多说了 xff0c 交互设计 xff0c 界面风格 xff0c 操作的简化程度都属于比较领先的水平 这里来说说Xcode5正式版 xff0c 和以前的Xcod
  • IOS飞机大战OC版

    前一阵子看到了很多版本的打飞机游戏 xff0c 有Java版的C 43 43 版本的还有C语言版的 这几天闲着的时候写了一个OC版的 xff0c 也正好是因为答应朋友写这个游戏来把飞机都换成他照片 没有用Cocos2d框架 xff0c 用的
  • stack corruption detected (-fstack-protector)

    栈发生错误崩溃问题调查 android 升级 ndk版本后 xff0c 一些操作后导致 so崩溃 xff0c 具体堆栈如下所示 00 pc 00065648 apex com android runtime lib bionic libc