intel-pin - Intel PIN:当工具中发生段错误时打印回溯
问题描述
我正在为英特尔 PIN 开发一个工具。在运行时的某个地方,它给了我以下错误。我想知道是否有办法告诉 PIN 打印回溯或让我处理工具本身的段错误。
我正在使用 MPI 运行我的工具,当我将值插入无序映射时它会崩溃。
C:工具(或引脚)导致 PC 0x2b09594533cb 处的信号 11
mpirun -np 44 pin-3.7-97619-g0d0c92f4f-gcc-linux/pin -follow_execv -t pin-3.7-97619-g0d0c92f4f-gcc-linux/source/tools/Simp ... -- 程序
解决方案
您可以使用以下 API:
PIN_AddInternalExceptionHandler()
从那里您可以访问EXCEPTION_INFO
应该使用异常 API操作的结构。
否则,您也可以在调试器中调试您的工具,方法是使用 -pause_tool 20 选项启动您的工具。然后您有 20 秒的时间将调试器附加到该进程。连接后,调试器将停止(至少在 Visual Studio 中)并允许您在工具代码中设置所需的断点。
但这并不容易调试,因为整个系统会不断地从 pintool 代码切换到 pin,再到目标应用程序。因此,在您的 pintool 代码中没有可以遵循的连续步骤过程,正如您在调试“经典单线程应用程序”时所期望的那样。
推荐阅读
- sql - 如何在 Access 中获取当月的最后一天
- cocoapods - 将“源”添加到 Podfile 会导致主干被忽略
- javascript - 通过在列表中交替背景颜色来提高可读性
- python - 只有员工用户才能在 django 中发布产品
- ios - 后台应用刷新对后台 URLSession 有影响吗?
- swiftui - 使用 SwiftUI 的自省库 UIRefreshControl 不起作用
- angular - 在 httpInterceptor 中设置参数覆盖了我想附加的额外参数
- python - 为什么这个角色总是sizeHintRole?
- python - python - 从字典中映射数据框列中的值,列表为值
- javascript - 道具编号不会改变时间