如何使用 gdb 调试使用 /dev/port 的应用程序

如何使用 gdb 调试使用 /dev/port 的应用程序

我有一个简单的 C++ 代码可以与旧的 ISA 卡一起使用

fd = open("/dev/port", O_RDWR);
if (fd == -1)
{
    Error() << "Error fd = -1" << msg_show;
    return;
}

我也做了:

sudo setcap cap_sys_rawio=ep myapp

如果我使用 启动应用程序./myapp,那么一切都很好,但是如果我使用以下命令启动调试会话:

 gdb myapp

然后我得到: error "fd = -1"

我也尝试过设置cap_sys_rawiogdb

sudo setcap cap_sys_rawio=ep /usr/bin/gdb

没有积极的结果。如何调试我的应用程序?

答案1

好的。在我的情况下,最正确的方法是编写一个简单的驱动程序,该驱动程序使用几个端口并提供 /dev/myport 设备,可以使用 chmod 更改权限。

我用我的示例驱动程序创建了一个存储库

https://github.com/qmor/AIC12202

相关内容