[问题] 关于程式流程的一些疑惑

楼主: e12518166339 (耐纶)   2015-05-15 15:10:37
开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
C语言、Ubuntu10.04
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
Igh EtherCAT master
问题(Question):
甲. main.c中的 ecrt_master_receive(master)这个函数呼叫照理说应该跳到ecrt.h
乙. 可是使用GDB的实际执行它却是跳到ethercat-1.5.2\lib\master.c 中执行
丙. 照我的理解真正实作接收封包的部分应该是在ethercat-1.5.2\master\master.c 中
的程式码
所以我搞不清楚实际上的运作方式,照我对C语言的理解它应该是执行 甲 这个结果
可是使用GDB却是执行 乙 这个结果
但是我对于整个行为的协定理解应该是要跳到 丙 才是
这让我一团混乱
程式码(Code):(请善用置底文网页, 记得排版)
https://hackpad.com/EtnerCAT-Igh-master-niX7PUPCNrW
作者: Feis (永远睡不着 @@)   2015-05-15 15:19:00
会期望程式在 .h 里面执行, 应该是不知道 .h 的作用 ?如果真的跑到 .h 里面, 那他的执行的内容是什么 ?至于乙跟丙的话, 应该是因为他类似有两个程式在跑, 你用的在 user space 之类的, 只是把东西接出来我不知道这在干吗的. 不过我猜你想追的是 kernel module 类的. (水晶球快告诉我吧~)
楼主: e12518166339 (耐纶)   2015-05-15 15:35:00
因为想实际知道接受封包的行为所以使用gdb这样的情况底下我是否就无法完整的trace它的行为了
作者: Feis (永远睡不着 @@)   2015-05-15 15:38:00
当然不是, 你应该只是找错 gdb 的对象了.
楼主: e12518166339 (耐纶)   2015-05-15 15:53:00
所以是我设定错中断点吗?但是行为应该在那里是接收
作者: longlongint (华哥尔)   2015-05-16 11:59:00
我又想推坑组合语言了
作者: TobyH4cker (Toby (我要当好人))   2015-05-16 13:57:00
XD水晶球啊水晶球,我要不要推组合语言呢?

Links booklink

Contact Us: admin [ a t ] ucptt.com