瀏覽單個文章
darkangel
Major Member
 
darkangel的大頭照
 

加入日期: Aug 2001
文章: 211
引用:
作者長站星七
這樣問好了, 有新人來面試, 您會問些啥?
基本的與進階的,

或是您給一些高階debug心得也可以.


我能理解 typh 大大的子欲無言是什麼心境了。
在這種瞎掰的地方,大家都是來找樂子的,這也是為什麼有人會說我的標準模式是嘲諷。(知我者 Jamin大大也)

首先,我不知道貴公司要找什麼樣的人,你不如把所需職務、經驗、給薪範圍說個大概,才有方向給建議,PCDVD 臥虎藏龍,相信有很多熱心的高手都會給你中肯的意見,倒不用刻意來問我這隻學藝不精的猴子,網路平台就是要大家都能發言,集思廣益才有價值。

其次,以 Embedded System、Linux/Android 來說,現在很少人是用組合語言直接開幹的,通常會用到的地方都是在開機最前面那段,而這部份大都是與硬體相關,例如設定 RAM 更新頻率等等,另外 ARM 指令有一堆後置操作,我搞不清楚也懶得去記,一般都是邊查邊用的,手上要有 ARM 指令集參考、速查表(cheat sheet),反正基本觀念的東西就那些,先看過一次有個底就好了。

再來談 debug ,debug 自己的程式跟 debug 別人的程式是不太一樣的,通常 debug 別人的程式比較辛苦,因為大都不是你寫的,所以要花不少時間去閱讀與理解別人的程式,而 debug 的速度一般會隨經驗上昇,有研究數據指出差距會在 10~20 倍之間,但也不是絕對值,人都有盲點,經驗再多的人有時也會卡住。

一般 debug 的方法大都是:
1. 找出問題,並複製問題。
2. 定位虫子位置,把虫移除。
3. 重覆測試看看虫是不是真的沒了。

方法很多,工具也很多,純軟體多半可以用 IDE 內的 source level debug 來抓,embedded system 的話就比較厚工(台語),從最白目的暴力 printk 刷屏法到使用各式軟硬體工具 gdb, jtag, ice 都有,而有時問題是出在硬體,所以祭出示波器、LA 檢查電路跟輸出波型也是常見的。
__________________
滿招損 謙受益
舊 2013-11-27, 02:52 PM #54
回應時引用此文章
darkangel離線中