[請益] 有關看code trace code的問題

看板Soft_Job (軟體人)作者 (殺拉頂)時間17年前 (2008/03/06 23:57), 編輯推噓9(9010)
留言19則, 6人參與, 最新討論串1/4 (看更多)
不知道po在這邊合不合適 若不合適請版主自行處置 XD 小弟在trace code上面遇到了一些問題, 今天已有一份程式,有 UML圖 class diagram 甚至於 OID圖等等文件, 但是遇到實際的bug還是不能locate出來問題出在哪, 小弟我 雖然大概知道說問題出在控制哪個行為的部分, 可是實際去trace時, 總是冒出很多看來 看去也看不出他的意義的變數跟function或是class, 不是名稱上的問題, 因為從名稱 看的出來"大概"做什麼的, 舉個例子好了例如RecalTotalSize 這個function名稱, 依照看文件跟scheme如果作delete或是add 物件就有可能會用到這個function, 但是 在delete可能有呼叫這個function,但是在另外一個卻找不到! 這是一個例子, 就是這種 感覺, 依照文件應該要有, 但是又不是這樣, 尤其加上C++ OO觀念之後............ 媽押 習慣C一條路貫通的那種trace方式根本就不行, 哪裡用個polymorphysm, 這裡包成 什麼東西, 跟程式外在的行為表現有時候真的連不太起來.... 有時候前輩這樣說:"這裡使用到物件自己知道自己該做的事情的想法, 當這個事件發生時 所有該對這件事情發生反應的人,都會作出各自的反應,例如有人說該吃飯囉~~~所有肚子 餓的人就用自己的方式去吃飯了....懂了媽? 試試看 這裡有個Bug你練習練習 "XD XD...... 還是trace不出來 XD 很苦惱當中...........請大家給我建議阿~~~讓我能早日獨立作業 各位前輩是否能以在業界 以比較淺顯的實際例子說明該如何trace code呢? trace到眼睛快脫窗了..... 感謝各位! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.195.2.226

03/07 00:26, , 1F
你中間 只有提及名稱的地方是事實 其他你是說 你感覺、好像
03/07 00:26, 1F

03/07 00:27, , 2F
話說 我們學長前幾天在我後面 開心的喊著 我猜對了 !
03/07 00:27, 2F

03/07 00:27, , 3F
我們就笑說: 現在資訊人員 是用猜的 也太神奇
03/07 00:27, 3F

03/07 00:29, , 4F
至於你前輩說的話 我也不太了 是說 觀察者架構?
03/07 00:29, 4F

03/07 00:29, , 5F
這段程式最好能有 原作者來稍微給妳指點一下基本背景 比較好
03/07 00:29, 5F

03/07 00:36, , 6F
哈..我看到他前輩那一段也想到Observer Pattern..
03/07 00:36, 6F

03/07 00:36, , 7F
疑? 一樓的id好熟啊XD 北科那邊生活還好嗎?
03/07 00:36, 7F

03/07 00:38, , 8F
= = 學長? 同學? 哈囉
03/07 00:38, 8F

03/07 01:02, , 9F
怪了...通通卡break point不就結了? 就耐心啊....
03/07 01:02, 9F

03/07 09:47, , 10F
可能有問題的mark掉 complie一次就知道那些地方用到他了
03/07 09:47, 10F

03/07 20:37, , 11F
吃飯的例子,應該是要指design pattern中的,observer吧..
03/07 20:37, 11F

03/08 22:02, , 12F
最疑惑的是那些#ifdef 到底程式碼會跑哪一塊都不知道
03/08 22:02, 12F

03/08 22:04, , 13F
一堆ifdef包來包去根本也搞不清楚開頭結尾
03/08 22:04, 13F

03/09 11:51, , 14F
然後又註冊一堆function pointer 所以你根本無法從表面
03/09 11:51, 14F

03/09 11:51, , 15F
看出誰call了哪個function
03/09 11:51, 15F

03/09 11:53, , 16F
如果想看call(er) graph 可以試試看Doxygen
03/09 11:53, 16F

03/09 11:54, , 17F
它會幫你畫出漂亮的圖 不過不保證正確 也不保證你看的懂
03/09 11:54, 17F

03/09 11:54, , 18F
而且它還是無法trace出像function pointer這種call
03/09 11:54, 18F

03/09 11:56, , 19F
doxygen要畫圖好像還要配合另一套graphviz的東西
03/09 11:56, 19F
文章代碼(AID): #17q1HlYl (Soft_Job)
文章代碼(AID): #17q1HlYl (Soft_Job)