小编Kar*_*amy的帖子

为什么syslog和gdb显示同一共享库的不同加载地址?

我正面临分段错误.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)

c linux gdb shared-libraries

5
推荐指数
1
解决办法
86
查看次数

如何杀死内核模块中的等待队列?

我是内核模块的新手。使用等待队列,我阻塞线程直到缓冲区有数据。使用hrtimer,我会定期唤醒队列。现在,问题是即使在我删除内核模块后,我也可以看到该进程"thread1"仍在运行。我认为问题是等待队列一直在等待并且进程在这里被阻塞。请帮助我如何在删除模块时终止等待队列。

void thread1(void)
{
    while (thread_running) {
        ...
        wait_event_interruptible(wait_queue, does_buffer_have_data());
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

c kernel-module linux-kernel

3
推荐指数
1
解决办法
1999
查看次数

标签 统计

c ×2

gdb ×1

kernel-module ×1

linux ×1

linux-kernel ×1

shared-libraries ×1