首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rw_semaphore的负计数值

rw_semaphore的负计数值
EN

Stack Overflow用户
提问于 2017-01-10 05:15:47
回答 1查看 186关注 0票数 0

我正在调试一个内核崩溃转储。似乎有一个进程试图内存映射一个新区域时出现了问题。问题是它不能保存内存映射信号量。

当我查看进程的mm_struct并打印其内容时。我看到struct rw_semaphore mmap_sem如下所示。现在,他对count的价值是否值得怀疑?它有一个负值,就好像有一个竞态条件,在检查了0之后,它被两个不同的线程递减了两次。

代码语言:javascript
复制
  mmap_sem = {
    count = -4294967295,
    wait_lock = {
      {
        rlock = {
          raw_lock = {
            slock = 262148
          }
        }
      }
    },
    wait_list = {
      next = 0xffff8801f0113e48,
      prev = 0xffff8801f0113e48
    }
  },
EN

回答 1

Stack Overflow用户

发布于 2017-01-10 05:44:19

很抱歉给你造成了混乱。我认为crash会提取正确的数据类型,并在打印出所有值时正确使用这些数据类型…

看起来崩溃实用程序未将count成员读取为int ...

当我把它打印成int时,我得到了正确的值。

代码语言:javascript
复制
crash> p (int) (((struct mm_struct *) 0xffff8801f15fa540)->mmap_sem).count
$13 = 1
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41557089

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档