首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
blueberryman
V2EX  ›  Linux

有没有人知道怎么能看到函数真实的系统调用

  •  
  •   blueberryman · 137 天前 via Android · 2086 次点击
    这是一个创建于 137 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我现在想到的就是用 strace 看带 pthread_con_wait 函数的文件,但是这样的话,pthread_con_wait 的系统调用会跟其它的函数混在一起,有什么办法能直接看到吗?或者 linux 官方有说明文档吗?感觉 man 的东西太少了,没说实现原理

    8 回复  |  直到 2019-11-12 18:00:52 +08:00
    nthhdy
        1
    nthhdy   137 天前
    直接看到是指啥?
    strace + grep 不行吗
    feather12315
        2
    feather12315   137 天前 via Android
    ltrace 看 library 调用,
    strace 看 syscall 调用
    ipoh
        3
    ipoh   137 天前
    直接看库函数的源代码
    blueberryman
        4
    blueberryman   134 天前 via Android
    @nthhdy 行是行,但是我得写一个应用该函数的程序才能用 strace 跑,我能不能知道函数名直接就找到函数源码
    yumenami
        5
    yumenami   133 天前
    具体啥需求?
    之前写了一个静态分析内核代码的程序,记录函数和文件的关系,然后调用的时候做匹配
    但是 bad case 太多了,而且很多指针的调用也分析不到
    不少情况不如直接用 strace 跑
    blueberryman
        6
    blueberryman   133 天前 via Android
    @yumenami 前几天在跟同事讨论 pthread_condition_wait 是不是线程安全时,寻思看看其内部的实现机制,但是找不到合适的方法。我想到了一个,用 strace。但是用 strace 得先编好一个的程序,再运行它,才能查看其实现原理。如果我想直接查看某个函数的实现原理,有什么好办法吗?
    nthhdy
        7
    nthhdy   112 天前
    @blueberryman 那不是应该看 pthread_condition_wait 的实现源码么。而且 pthread_condition_wait 这个函数是实现线程间通信、处理竞争条件的原语,不存在说这个函数本身是不是线程安全。
    cmingxu
        8
    cmingxu   76 天前
    strace -p <pid> -e pthread_con_wait 可以么
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2177 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 21ms · UTC 11:08 · PVG 19:08 · LAX 03:08 · JFK 06:08
    ♥ Do have faith in what you're doing.