我正面临分段错误.Syslog报告以下内容:
segfault at 0 ip 00000000f71ff256 sp 00000000f44fee50 error 4 in libprotobuf-c.so.0.0.0[f71f8000+f000]
Run Code Online (Sandbox Code Playgroud)
所以,libprotobuf-c.so被加载到0xf71f8000.当我在gdb中加载相应的核心文件并尝试时info sharedlibrary,它显示的FROM地址与0xf71f9f70syslog显示的不同.我无法理解这种不匹配.有人可以帮忙吗?
0xf71f9f70 0xf7204028 Yes (*) /usr/lib/libprotobuf-c.so.0
Run Code Online (Sandbox Code Playgroud) 我是内核模块的新手。使用等待队列,我阻塞线程直到缓冲区有数据。使用hrtimer,我会定期唤醒队列。现在,问题是即使在我删除内核模块后,我也可以看到该进程"thread1"仍在运行。我认为问题是等待队列一直在等待并且进程在这里被阻塞。请帮助我如何在删除模块时终止等待队列。
void thread1(void)
{
while (thread_running) {
...
wait_event_interruptible(wait_queue, does_buffer_have_data());
...
}
}
Run Code Online (Sandbox Code Playgroud)