ARM Data Abort错误异常调试

2024-01-22

所以现在我明白我遇到了 ARM 数据中止异常 - 我了解了如何捕获异常本身(STL 库中的错误地址),但我想在异常之前返回堆栈帧。我正在使用 IAR 工具链,它告诉我异常后调用堆栈不可用 - 有没有一种技巧可以说服工具向我显示调用堆栈?感谢您的快速帮助!


如果您查看 ARM ARM(ARM 架构参考手册,只需 google“arm arm”),程序员模型 -> 处理器模式和寄存器部分。当处于中止模式时,您有特权,因此您可以从中止切换到超级管理员,然后复制 r13,然后切换回中止模式并从 r13 的副本转储堆栈。您的 r14 还会告诉您中止发生的位置。

如果这次中止是由于对齐造成的,我不会感到惊讶。尝试读取/写入低两位不为零的地址的字或具有地址集的 lsbit 的半字。实际上,如果您获取链接寄存器和寄存器转储(r0-r12),因为中止和用户/主管使用相同的寄存器空间,您可以查看导致中止的指令和地址,看看它是否确实是一个对齐问题或其他问题。请注意,电脑会提前一个、两个或三个指令,具体取决于中止的拇指或手臂模式,如果您根本不使用拇指,则无需担心。

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

ARM Data Abort错误异常调试 的相关文章

随机推荐

  • 如何防止在 twitter bootstrap typeahead 插件中按 Enter 键提交

    我有一个输入文本 我应用它的预输入插件来建议项目 但是当我在输入文本上按 Enter 键时 它会提交表单 如何使用 twitter bootstrap typeahead 插件阻止表单提交 您可以通过向特定输入添加 ID 并简单地删除 En
  • git flow 发布选定的功能

    我正在尝试向我的团队介绍 Git 流程 我们是一个相当小的团队 而且非常敏捷 我们希望每天发布一次 这意味着我们测试当天所有更改的时间有限 业务团队希望能够控制正在发布的功能 尽管这并不理想 Git 流程似乎不能很好地适应这一点 从开发中删
  • 在 Android 中调整图片大小同时仍保持质量

    我想将图像文件大小减小到 100 KB 以下 同时保持图像质量 就像 Whatsapp 和 Facebook 所做的那样 我尝试了 stackoverflow 上几乎所有可用的 android 图像压缩代码 但这对我不起作用 现在我正在关注
  • C++14 中的递归 lambda 函数 [重复]

    这个问题在这里已经有答案了 在 C 11 中编写递归 lambda 函数有一个经常重复的 技巧 如下所示 std function
  • java.sql.Date 如何处理负日期?

    我遇到过这样的情况 当从数据库读取日期时 Java 运行时返回某种 反转 毫秒值 在java sql Date 毫秒值与天数大致相同 但从 0 年开始倒推 只需重新启动 Java 运行时即可解决该问题 但是 我发现 Java 几乎可以正确地
  • 如何在 Three.js 中实现 ShaderToy 着色器?

    寻找有关如何在 Threejs 中重新创建 ShaderToy 参数 iGlobalTime iChannel 等的信息 我知道 iGlobalTime 是自着色器启动以来经过的时间 我认为 iChannel 的东西是用于从纹理中提取 RG
  • 如何按最小增量更改 double

    是不是有什么东西坏了或者我不明白发生了什么 static String getRealBinary double val long tmp Double doubleToLongBits val StringBuilder sb new S
  • 为什么在 Scala 中使用 def 和 val ,反之亦然

    我知道这已经在其他帖子中讨论过 并且我了解使用之间的基本区别def and val def用于定义方法并且val以获得不可变的引用 我想通过问这个问题来完成的是了解是否还有更多的事情可以做def 它可以与 a 互换使用吗val 最近我尝试了
  • 分段错误处理程序中的分段错误

    Linux 下分段故障处理程序中发生的分段故障是否有一些定义的行为 是否会再次调用同一个处理程序 如果是 在所有平台上是否已定义等等 谢谢 答案取决于您如何安装信号处理程序 如果您使用已弃用的安装信号处理程序signal http linu
  • 如何防止div进出动画中的多次点击

    我想通过点击它来将 div 移入和移出 我只是像这样对 div 进行动画处理
  • 在 Bash 中如何查看字符串是否不在数组中?

    我试图在不添加额外代码 例如另一个 for 循环 的情况下执行此操作 我可以创建将字符串与数组进行比较的正逻辑 虽然我想要负逻辑并且只打印不在数组中的值 但本质上这是为了过滤掉系统帐户 我的目录中有这样的文件 admin user xml
  • SWIG 和 Python3 导入错误

    我用 C 编写了一个库 我使用SWIG http swig org为 Java Python 等生成绑定 我设法为这两种语言编写自定义类型映射等等 我还设法使用我的库 自定义协议 并与我用 C 编写的服务器 我用 Java 编写的客户端以及
  • 部署 Perl 应用程序

    部署 Perl 应用程序的最佳实践是什么 假设您正在部署到安装了少量 CPAN 模块的普通盒子上 理想的构建 部署方法是什么 Module Build ExtUtils MakeMaker 其他 我正在从那些针对大型应用程序重复执行此操作的
  • 如何使用 Office 2010 调试 Office 2007-addin

    我想开发一个适用于 Word 2007 和 Word 2010 的 Word 插件 因此 我在 Visual Studio 中创建了一个 Word 2007 插件项目 我的机器上 仅 安装了 Word 2010 当我尝试从 Visual S
  • 如何访问vagrant box laravel/homestead中的特定端口?

    我正在我的 vagrant laravel homestead 盒子上开发一个节点项目 一切正常 当我转到我的主机定义时 我可以访问该项目 etc hosts 192 168 10 10 project 但是 我正在尝试使用 webpack
  • android 是否可以在来电或去电时录制通话

    在android中 可以在不打开手机扬声器的情况下在来电 去电期间录制语音通话 我在android市场上看到过一个应用程序 由于它使用麦克风进行录音 因此在不打开扬声器的情况下无法正确记录对方的声音 可以通过其他技术来完成吗 final M
  • 从两个不同的脚本写入和读取 fifo

    我有两个 bash 脚本 一个脚本写入 fifo 第二个从 fifo 读取 但在第一个结束之后写入 但有些东西不起作用 我不明白问题出在哪里 这是代码 第一个脚本是 作者 bin bash fifo name myfifo Se non e
  • Git 将文件添加到存储库

    我遵循基本的 Git 教程并添加了 README 文件 效果很好 然后我将项目文件复制到同一文件夹并尝试通过运行将它们添加到存储库 git add all git ci test my alias for commit git push o
  • git 项目的 Eclipse 设置

    关于这个话题有很多问题 但目前还没有令人满意的答案 例如this https stackoverflow com questions 8820668 the current branch is not configured for pull
  • ARM Data Abort错误异常调试

    所以现在我明白我遇到了 ARM 数据中止异常 我了解了如何捕获异常本身 STL 库中的错误地址 但我想在异常之前返回堆栈帧 我正在使用 IAR 工具链 它告诉我异常后调用堆栈不可用 有没有一种技巧可以说服工具向我显示调用堆栈 感谢您的快速帮