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

看板C_and_CPP作者 (brotherD)時間6年前發表 (2018/09/26 11:35), 6年前編輯推噓6(607)
留言13則, 8人參與, 6年前最新討論串1/1
程式碼: 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 我是不是直接換個環境比較快阿??? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.42.52.32 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1537961751.A.913.html

09/26 19:46, 6年前 , 1F
你的i沒有初始值會出事
09/26 19:46, 1F

09/26 19:47, 6年前 , 2F
printf 寫錯了,%d 要對應 int 你卻給 unsigned char
09/26 19:47, 2F

09/26 19:47, 6年前 , 3F
後面會 Segmentation fault 也不意外
09/26 19:47, 3F

09/26 19:49, 6年前 , 4F
對喔,i 也沒給初值就使用
09/26 19:49, 4F

09/26 20:03, 6年前 , 5F
你的i每次進來都是garbage,你應該是想設成static吧 另外
09/26 20:03, 5F

09/26 20:03, 6年前 , 6F
如果要練習寫timer interrupt不該用這種模擬方式,你怎麼跑
09/26 20:03, 6F

09/26 20:03, 6年前 , 7F
都只是user process~直接寫一隻driver不就好了
09/26 20:03, 7F
感恩,是i沒給到初始值,導致取到array以外的值了~ 回c大,目前手邊沒開發板,只能用這樣子模擬QQ ※ 編輯: zzss2003 (114.42.52.32), 09/26/2018 20:23:55

09/26 22:49, 6年前 , 8F
你繼續用看的看C語言就好,用看的,不要寫code。
09/26 22:49, 8F

09/27 13:42, 6年前 , 9F
置底十三誡之第一誡。那十三誡值得一看
09/27 13:42, 9F

09/28 19:40, 6年前 , 10F
因為你打錯字
09/28 19:40, 10F

09/28 20:19, 6年前 , 11F
er..是時候該拋棄dev c++跟學學debugger了
09/28 20:19, 11F

09/28 23:00, 6年前 , 12F
vscode 比較棒
09/28 23:00, 12F

10/02 12:05, 6年前 , 13F
eclipse好像有開發版模擬plugin
10/02 12:05, 13F
文章代碼(AID): #1RgsyNaJ (C_and_CPP)