[問題] 為什麼會出現segament fault?程式問題?

作者: zzss2003 (brotherD)   2018-09-26 19:35:47
程式碼: https://ideone.com/kP8qHo
結果: https://imgur.com/a/WMdUccR
與結果不符之預期: 程式不應該停止,因為我用while(1)迴圈整個包住了,而且並沒有
printf出"should not be here"。 然後我用debug mode一行一行跑的時候,發現count=2
(也就是第二次進入isr)且執行到第87行的時候(也就是在60行,把LEDS丟進去function
print_byte),出現segment fault。
這就是為什麼程式會在這邊停止的原因吧! 但從C語言來看這一行本身沒什麼問題,我又看
不太懂x86的組語...Orz,所以來這邊請教一下各位大大。
(ps: 原本想給各位大大看組語,但不曉得為什麼我的dev c++開啟視窗後就不能動了,導
致沒辦法把整個片段給大家看。)
截圖: https://imgur.com/a/0ZoYrgi
我是不是直接換個環境比較快阿???
作者: james732 (好人超)   2018-09-26 19:46:00
你的i沒有初始值會出事
作者: Schottky (順風相送)   2018-09-26 19:47:00
printf 寫錯了,%d 要對應 int 你卻給 unsigned char後面會 Segmentation fault 也不意外對喔,i 也沒給初值就使用
作者: cphe (魔鬼藏在垃圾筒裡)   2018-09-26 20:03:00
你的i每次進來都是garbage,你應該是想設成static吧 另外如果要練習寫timer interrupt不該用這種模擬方式,你怎麼跑都只是user process~直接寫一隻driver不就好了
作者: MOONRAKER (㊣牛鶴鰻毛人)   2018-09-26 22:49:00
你繼續用看的看C語言就好,用看的,不要寫code。
作者: Schottky (順風相送)   2018-09-27 13:42:00
置底十三誡之第一誡。那十三誡值得一看
作者: segment (一生懸命)   2018-09-28 19:40:00
因為你打錯字
作者: Killercat (殺人貓™)   2018-09-28 20:19:00
er..是時候該拋棄dev c++跟學學debugger了
作者: sunneo (艾斯寇德)   2018-09-28 23:00:00
vscode 比較棒
作者: dces4212 (flawless)   2018-10-02 12:05:00
eclipse好像有開發版模擬plugin

Links booklink

Contact Us: admin [ a t ] ucptt.com