作者saladim (杀拉顶)
看板Soft_Job
标题[请益] 有关看code trace code的问题
时间Thu Mar 6 23:57:34 2008
不知道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
1F:推 kvjo:你中间 只有提及名称的地方是事实 其他你是说 你感觉、好像 03/07 00:26
2F:→ kvjo:话说 我们学长前几天在我後面 开心的喊着 我猜对了 ! 03/07 00:27
3F:→ kvjo:我们就笑说: 现在资讯人员 是用猜的 也太神奇 03/07 00:27
4F:→ kvjo:至於你前辈说的话 我也不太了 是说 观察者架构? 03/07 00:29
5F:→ kvjo:这段程式最好能有 原作者来稍微给你指点一下基本背景 比较好 03/07 00:29
6F:推 chihyi1980:哈..我看到他前辈那一段也想到Observer Pattern.. 03/07 00:36
7F:→ chihyi1980:疑? 一楼的id好熟啊XD 北科那边生活还好吗? 03/07 00:36
8F:推 kvjo:= = 学长? 同学? 哈罗 03/07 00:38
9F:推 iincho:怪了...通通卡break point不就结了? 就耐心啊.... 03/07 01:02
10F:推 nobody1:可能有问题的mark掉 complie一次就知道那些地方用到他了 03/07 09:47
11F:推 stevin09:吃饭的例子,应该是要指design pattern中的,observer吧.. 03/07 20:37
12F:推 meltice:最疑惑的是那些#ifdef 到底程式码会跑哪一块都不知道 03/08 22:02
13F:→ meltice:一堆ifdef包来包去根本也搞不清楚开头结尾 03/08 22:04
14F:推 meltice:然後又注册一堆function pointer 所以你根本无法从表面 03/09 11:51
15F:→ meltice:看出谁call了哪个function 03/09 11:51
16F:→ meltice:如果想看call(er) graph 可以试试看Doxygen 03/09 11:53
17F:→ meltice:它会帮你画出漂亮的图 不过不保证正确 也不保证你看的懂 03/09 11:54
18F:→ meltice:而且它还是无法trace出像function pointer这种call 03/09 11:54
19F:推 meltice:doxygen要画图好像还要配合另一套graphviz的东西 03/09 11:56