作者查詢 / yvb
作者 yvb 在 PTT [ C_and_CPP ] 看板的留言(推文), 共847則
限定看板:C_and_CPP
看板排序:
4F推:AddToString('\0')跟AddToString('\\')是假設要處理卻會出問題11/20 12:43
5F→:拿一個有bug的code來說明很怪...11/20 12:43
3F推:請問您看十三誡時, 有選 4 進去完整看完 04. 的兩頁內容嗎?11/16 19:41
4F→:啊~~~ 剛沒注意看. 原 PO 的困惑看來很可能是2樓所提的情況.11/16 19:48
22F推:樓上上, 那本是 "程式設計師"的..., 不是 "程式初學者"的...,11/18 12:28
23F→:所以可能太為難原PO了吧...11/18 12:29
3F推:第 70 行 gdbserver 192.168.0.101:1234 testqt core11/14 18:55
4F→:那個 core 是 testqt 的參數 ?11/14 18:56
5F→:第 80 行 arm-linux-gdb testqt core11/14 18:57
6F→:這個 core 是 gdb 的參數, 指到 core 檔.11/14 18:58
7F→:第 119 行之前, 已經可 bt , list 了, 不需用到 target remote11/14 19:00
8F→:第 120 行, (gdb) target remote:192.168.0.102 連到遠端,11/14 19:01
9F→:其實遠端還沒開始執行, 請接著打 start 啟動它...11/14 19:02
10F→:就跟本機(非arm-linux)的 gdb program 後, 要先打 start 一樣.11/14 19:04
11F→:或著直接打 run, 直接執行, 看它跑到死掉... :P11/14 19:10
22F推:訊息不大完整, 看不出來是怎麼回事...11/15 00:16
23F→:話說你在 #1IWWLAJz (LinuxDev) 用的是 gdb 7.2,11/15 00:18
24F→:怎麼這邊又變成 gdb 7.6.1 ??11/15 00:18
25F→:用 LinuxDev 那邊的小程式, 測試 gdb 7.6.1 的結果正常嗎?11/15 00:20
26F→:另外, 編成 ubuntu 本機用的版本, 裝一下本機的 gdbserver,11/15 00:21
27F→:在 ubuntu 本機上跑 gdbserver 並用 gdb 對本機 remote debug,11/15 00:22
28F→:可以試試看結果又是怎樣, 當做輔助對照一下...11/15 00:23
29F→:另外, 你上面推文寫的兩種當然不一樣, 第一種是用 core 追踪11/15 00:24
30F→:程式死掉時的情況; 第二種則是 gdbserver 先把程式讀進來,11/15 00:25
31F→:連 ld.so 都還沒開始. 用 start 或 run 才開始啟動執行程序.11/15 00:27
32F推:第 282-287 行的參數問題, 其實在上一段的三、四樓, 我就提到,11/16 00:33
33F→:那個 core 是 testqt 的參數了.11/16 00:34
34F→:另外, remote 後來試了一下, 確實不能用 start 和 run,11/16 00:37
35F→:大概之前直接在設備上用 gdb 記錯了...11/16 00:38
36F→:不過 remote 還是可以設中斷點 b main 後再 c 繼續,11/16 00:39
37F→:應該就可以 info shared 了; bt, list 在此時應該也可以...11/16 00:41
40F推:第 340 行的 0x00000000 in ?? (), 在我這邊的情況是,11/16 12:14
41F→:把 libthread_db.so 放到 sysroot 下的 lib, 執行 gdb 時,11/16 12:18
42F→:set solib-absolute-prefix (同 set sysroot) 到 sysroot,11/16 12:20
43F→:結果就會顯示 0x######## in main() at ... 參考一下.11/16 12:24
44F→:至於 remote 不能用 core 檔, 反正可以 remote get core core,11/16 12:25
45F→:把 core 從設備抓來主機. 可能解析 core 需要額外的處理,11/16 12:27
46F→:而且 core 已保留死掉時的情況, 所以就不特別支援了吧.11/16 12:29
3F推:fscanf_s(f1,"%c",&x) 應改為 fscanf_s(f1,"%c",&x, 1) ??11/14 19:53
26F推:其實 ANSI/ISO C (C89/C90) 也定義 sizeof(char) 是 1;11/12 18:48
27F→:甚至 K&R C 2ed(1988)也同定義; 1ed(1978)則說現有實作都是1.11/12 18:52
9F推:向量=一維陣列, 矩陣=二維陣列; 多維陣列維度超過1, 包含矩陣.11/06 12:37
2F→:fgets() + sscanf() ?11/05 12:42
3F→:有一行 getc() + ungetc() + fscanf() 被修掉了...11/05 12:46
4F→:還有, 看 return code 應該也可判斷讀檔結束沒.11/05 12:46
6F推:所以可能會有一列只有一個或兩個數字的情況?11/05 12:50
10F推:如果一列可能很多行, 那 fgets() 就不知要多大 buffer 了.11/05 13:02
11F→:當然如果是自已的資料, 就可以知道每列字數上限就是了.11/05 13:04
18F推:那麼, 改試試看 fgets() + strtof()/strtod() 吧.11/05 15:06
19F→:sscanf() 可以後面先設很多個變數來接, 最後看 return code,11/05 15:08
20F→:就可以知道讀到幾個有效資料.11/05 15:08
9F推:sortDic() 中又叫用 sortDic(), 不知會叫用到幾層, 叫用幾次?11/03 00:24
10F→:每次 sortDic() 開頭叫用要了一堆記憶體, 結束不釋放,11/03 00:26
11F→:也沒檢查有沒有要成功, 所以大量資料時會發生什麼事沒人知道.11/03 00:27
12F→:置底十三誡的第6誡.11/03 00:33
3F推:樓上, 應該是 char *c = strtok(NULL, "");11/01 21:00
35F推:vfork() 情況不同, parent 會suspend直到 child exec 或 exit,10/31 12:53
36F→:所以 vfork() 沒 exec() 的話, 就沒 race condition 的問題.10/31 12:55
37F推:作資料存取的race condition, 我想是指已開啟的檔案之類.10/31 13:16
38F→:比方用 open() 開啟, fork() 後各別對其 read(), 和10/31 13:17
39F→:先 fork() 再各別 open() 及 read(), 結果會不同.10/31 13:18
40F→:假設檔案內容為 abcdef, read() 每次都讀 1 byte,10/31 13:19
41F→:第一種可能各別讀到為 ace 和 bdf; 第二種就都讀到 abcdef.10/31 13:20