[問題] 關於程式流程的一些疑惑

作者: 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