c - VXWorks 向头文件添加函数
问题描述
我正在尝试将我自己的函数添加到 jobQueueLib 并逐步执行代码行,或者那里的任何函数(它们都是 EXTERN)。
如果我不放#include <jobQueueLib.h>,则单步执行.h函数调用直接进入汇编,这是指vxworks-6.9/target/h/wrn/coreip/jobQueueLib.h
添加包含后,进入相同的现有函数会导致分段违规。
更新:我的问题是 C、可下载的内核模块项目构建或组件相关(即使我检查它是 VIP 中包含的组件)——因为我在编译时收到无法解析模块符号的警告:jobQueueTerminate ,或对该 .h 文件中的任何函数的任何其他调用(它们都是 EXTERNS)。
检查删除的包含语句,我仍然无法从 vxworks-6.9/target/h/wrn/coreip/jobQueueLib.h 调用任何函数,所以我认为这是一个项目级别的包含问题。这是我的 DKM 项目包括(最后一个是多余的,但我看不到删除它的方法):
如何让符号解析?
解决方案
最终获得了使用您自己修改的源代码运行 DKM 的流程:
在任何 C 文件中进行更改 -> 制作 VSB 并使用包含的源代码构建它 -> 制作基于此 VSB 的 VIP 并构建它 -> 使用此 VIP 的输出 VXWorks 二进制文件之一并“连接到目标模拟器” -> 让你的 DKM 从 VIP 引用(DKM 将是 VIP 的子项目) -> 最后,在之前建立的目标连接上执行 DKM!
PS 我使用 SIMLINUX 做 VIP 构建是 LINUX,我使用了构建 VIP 的 VXWorks Linux 二进制输出。
推荐阅读
- sql - 如何按类别分隔 SQL 分区:“row_number() over (partition by ...”?
- apache-kafka - Kafka-connect,Bootstrap 代理断开连接
- outlook-2016 - 电子邮件未在 Microsoft Outlook 2016 中显示 google Roboto 字体
- java - 作为 Windows 服务运行时创建屏幕截图
- powershell - 如何在 VSCode 中禁用 Format Document 以排除一行
- ios - 在 Swift / iOS 中将数据存储在磁盘上
- java - 带有 Firebase 的 Android Studio 中的“链验证失败”
- swift - Swift Calculator - 无法在小数点后输入零
- html - 如何使用 Flex 使中心列中的两行之一确定该列的宽度?
- image-processing - 通过使用 GRAD_CAM 可视化类激活来理解 CNN