用Source Insight看Linux源代码,同一个函数会出现多重位置,怎么确定到底用的哪个呢?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用Source Insight看Linux源代码,同一个函数会出现多重位置,怎么确定到底用的哪个呢?相关的知识,希望对你有一定的参考价值。
比如memset就有22个原型,不知道哪个是真的
呵呵,这个问题好解决,你在linux下,首先将其编译一道,也就是先要配置,然后在编译之后呢,比如说a.c里面有个 func1函数,你用sourceinside查看不是有好多申明么,他们应该在不同的*.h里
你在linux下运行如下命令
gcc -M a.c
就可以得到a.c所依赖的所有头文件。
然后你看看你的所有func1的原型在这些头文件中的,就是你真正引用的头文件了 参考技术A 看看你用的那个架构,不同的配置文件会用到不同的位置的名字相同的函数,比如你的配置是x86的核,那么文件名或目录名中带x86的基本就是了。 参考技术B 一般看include/linux下的那个
搭建虚拟机和source insight开发环境
开发中经常有需要看大平台代码的时候,这个时候代码太大在虚拟机里面用vscode看会非常卡顿,因此可以使用source insight来解决这个问题,但是source insight是win环境的,因此需要搭建一个虚拟机和win之间的桥梁,下面记录一下这个过程:
主要是使用source insight + samba访问虚拟机的linux文件系统来实现
1、smaba设置
首先需要安装一下smaba,使用apt进行安装:
sudo apt install samba
之后关闭系统防火墙:
sudo ufw disable
下面开始配置一下smaba
sudo vim /etc/samba/smb.conf
直接进入文件末尾,将下面的内容复制进去,注意path = /home/lx/Downloads是我们共享的路径,需要设置为自己想要共享的路径才行
[suricata]
comment = get suricata code
path = /home/lx/Downloads
writable = yes
browseable = yes
guest ok = yes
修改完成后如下所示:
之后重启smaba服务
sudo /etc/init.d/smb restart
2、win设置
进入win平台,按下win + R
,在下面输入我们虚拟机的IP地址
进入后效果如下所示:
点开就是我们之前设置的path = /home/lx/Downloads
这个虚拟机路径了:
之后右键映射网络驱动器:
直接确认即可:
会看到磁盘上多了这样一个盘:
之后就是source insight的常规操作了:
但是这里一定要注意,需要现在我们设置的共享文件夹下面设置一下文件属性,不然我们win可能无法修改虚拟机里面的文件,因为没有足够的权限。
进入到共享的文件夹,批量修改里面所有文件的权限:
这样就OK了!
以上是关于用Source Insight看Linux源代码,同一个函数会出现多重位置,怎么确定到底用的哪个呢?的主要内容,如果未能解决你的问题,请参考以下文章