오래된 ISA 카드에서 작동하는 간단한 C++ 코드가 있습니다.
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_rawio
하려고 시도했습니다.gdb
sudo setcap cap_sys_rawio=ep /usr/bin/gdb
긍정적인 결과가 없습니다. 내 애플리케이션을 어떻게 디버깅하나요?
답변1
좋아요 내 경우 가장 올바른 접근 방식은 몇 개의 포트를 사용하고 chmod를 사용하여 변경할 수 있는 권한이 있는 /dev/myport 장치를 제공하는 간단한 드라이버를 작성하는 것이었습니다.
샘플 드라이버를 사용하여 저장소를 만들었습니다.