当在找application层在哪里bind端口的时候(废话肯定是socket->bind())了啊,但不知道是谁调用了这个bind()的时候(官网只有call graph 并没有caller graph TAT),我们就可以在下层的函数(某个必经的函数)里面设置一个断点,然后在该断点使用where命令查看堆栈,就可以看到谁调用的啦
-
举个例子
我在网络层的必经函数ipv4-l3-protocol.cc里的Send()设置了断点【至于为什么能判断出这个是毕经的函数,可以看另一篇博文的分析】,查看到的调用关系如下:
-
要实现在application层绑定发送端口的事情,我就从application container的Start函数就开始加接口,然后一层一层往下传递这个参数( 因为application的StartApplication 就是ApplicationContainer调用的 ,然后前者调用了socket子类的bind函数)