作者查詢 / yvb
作者 yvb 在 PTT [ LinuxDev ] 看板的留言(推文), 共247則
限定看板:LinuxDev
看板排序:
3F推: 樓上的猜測, 我想應該很接近答案了.10/09 21:57
4F→: 去查CV_OCL_RUN(condition, func)的定義,且印出condition看看10/09 21:57
21F推: 樓上: google: VLA c9903/31 10:04
22F→: 回原PO: 你確認過 wens 在 8 樓的問題了嗎?03/31 10:06
23F→: g=0 時, fib[0-1] => fib[-1] 是該被 usercopy 報 BUG(),03/31 10:09
24F→: 但你確定 g=1 到 g=100 也報 BUG() ?03/31 10:10
27F→: 另外, 既然for(...k<=g...)算到 fib[g], 為何是回 fib[g-1]?03/31 10:14
28F→: @xam: 嗯,要看原PO用的是gcc還是clang.若是clang也許有問題.03/31 10:33
29F→: 又, 原PO用的是4.15, 要4.20才有設-Wvla對VLA給warning.03/31 10:38
30F→: @xam: 又看了一下那篇,指的是struct的member用到VLA有問題,03/31 10:44
31F→: 而原PO的VLA是C99-style,所以clang支援.03/31 10:47
32F→: 至於第1點, 只是 overhead 問題; 但第3點就不大明暸了...03/31 10:54
33F→: 猜測是要做陣列大小檢查(還是直接改用kmalloc乾脆XD).03/31 11:01
35F→: 是說原PO的 fib[g+1] 其實大小只要 fib[3], 撘配 % 運算即可.03/31 11:03
39F推: 觸發BUG()就是因為arch_within_stack_frames()回傳BAD_STACK.04/04 12:11
40F→: 超過16KB被panic: google "虛擬記憶體" "MMU" "分頁表" 幾項.04/04 12:12
41F→: fib[1].lsl = 1 可能寫到其它變數(a,tmp,k), 或變數間有空區.04/04 12:12
42F→: 至於 fib[0]賦值後 copy失敗 ==> 程式碼是修改成怎樣?04/04 12:13
43F推: 所以 g==0 時, 依舊會執行 fib[1].lsl = 1; 的意思?04/09 13:07
44F→: 或許上述 assignment 恰巧改寫到 copy_to_user(buf, ...) 中04/09 13:08
45F→: buf 的位址? 編譯器產生怎樣的 obj 不是光看 src 就可得知的.04/09 13:08
46F→: 若是已避掉非法存取, 似乎沒道理發生問題, 除非編譯器有bug?04/09 13:12
47F推: 就如前幾句說的, obj code 不是光看 src code 就可得知的.04/16 20:26
48F→: 或許 objdump -S 搭配 panic 訊息可窺之一二 (也或許不能).04/16 20:27
49F→: 另外, 是用什麼參數印 buf? &fib[1].lsl 及 &buf 又各是多少?04/16 20:28
6F推: 改 #include <linux/types.h> ?03/20 15:33
7F→: 啊, 其實 #include <linux/kernel.h> 也包含了.03/20 15:43
8F推: https://goo.gl/pvfkby11/25 17:56
9F→: 在程式 pthread_join() 下加一行 pthread_exit(&ret); 試試.11/25 17:58
10F→: 搭配 ps ax 和 ps axH 看看 process 和 threads 的情況.11/25 17:59
1F→: 請 google: android strace10/23 19:03
2F→: 另外, kill -3 pid 或 kill -11 pid, 也許就能用 ndk-stack ?10/23 19:03
1F推: 聽了一下, 不知道你的問題點在哪.10/17 01:04
2F→: 是否考慮先條列出他的語句, 再逐項指出不懂或有疑問的部分?10/17 01:06
7F→: 可以思考一下 sp 和 program 的關係是什麼?10/19 13:14
8F→: 或者說, sp stack 在 program (process) 中被如何使用?10/19 13:16
11F推: 你在樓上的這個 URL 是說明了 sp 及 stack 的用途,10/20 22:12
12F→: 但你說 "不能連續push兩次" 又是誤解了什麼?10/20 22:13
14F推: 就以存放在stack的local variables來說好了. 在一個函式中,10/23 19:01
15F→: 上述變數就是對應成sp加上一個特定offset, 所以sp變更後,10/23 19:01
16F→: 存取這樣的變數就會存取到錯誤的位址了; 其它 用sp的方式,10/23 19:02
17F→: 也差不多是這種情況 (除了直接改sp是例外).10/23 19:02
1F推: 是否有可以 reproduce 的 sample code ?10/20 22:02
2F→: 以及是否使用 strace 追踪 syscall 的情況了呢?10/20 22:03
2F推: 應該是 printk 沒加換行, 看到前一次的訊息吧.10/16 20:17
6F推: 剛弄了一台 4.15.0-36-generic (Ubuntu 16.04.5 LTS) 實測,10/17 00:51
7F→: 證實是 printk 加上換行就好了. 與 verification 無關.10/17 00:52
8F→: "eeeentry" => "eeeentry\n" 及 "Good bye" => "Good bye\n"10/17 00:54
10F推: 你的 kernel version 是 3.3 之前嗎 ? linux-3.3 以後是01/29 12:22
11F→: char *(*devnode)(struct device *dev, umode_t *mode);01/29 12:22
12F→: ^^^^^^^01/29 12:24
1F推: 應該是 server 回應 401 的 HTTP狀態碼, 由瀏覽器自行產生的.02/03 06:29
2F→: 看了一下boa源碼,該回應即response.c的send_r_unauthorized()02/03 06:43
4F推: 站內信當然可以,但我未必懂. 在此和大家一同討論應該更好.02/03 18:03
8F推: 光靠401產生認證視窗的方式沒辦法,只能依賴瀏覽器本身行為,02/06 19:44
10F→: 比如 IE 會在3次錯誤後停止嘗試, Chrome 仍繼續跳認證視窗.02/06 19:46
11F→: HTTP本身是stateless的, server無法確認是否同一瀏覽器錯幾次02/06 19:51
12F→: 因此需要引入stateful機制如cookie/session/url-ext之類,02/06 19:53
13F→: 使用如多數用戶網站的登入, 搭配後台程式進行驗證及計次等...02/06 19:58
20F推: 原來是貴公司的產品用到. 所以是視瀏覽器對 HTTP 認證失敗的02/07 20:02
21F→: 後續行為不同為 bug? 不知您對 HTTP 這個協定中, 諸如02/07 20:02
22F→: HTTP status, HTTP header, HTTP auth, HTTP cookie 的了解02/07 20:03
23F→: 情況如何; 以及認證這部分, 在產品中的內部運作流程又是如何,02/07 20:03
24F→: 是直接改寫 boa 程式碼逹成, 或是使用 uClinux boa 的 auth02/07 20:04
25F→: 搭配設定檔, 還是叫用 cgi/scripting 來處理認證?02/07 20:04
27F→: 發文者應該可以用大寫 E 編輯文章啊...02/08 21:16
28F推: 編輯若非修改原內容, 而是追加, 回推文, 那寫在推文下較佳.02/10 18:53
29F→: 其實 HTTP auth 最大的問題(缺點)就是定義得太簡單,缺少諸如02/10 18:56
30F→: 檢查次數,要求登出等機制 (無法登出是否又會被當另一個bug?)02/10 18:58
31F→: 所以一切要靠browser自定行為. 不知貴公司是怎樣的產品,02/10 19:02
32F→: 登入成功的後續是靜態網頁?CGI?或是仍在boa中加怎樣的處理?02/10 19:03
33F→: 若是另外使用CGI或scripting languages (asp,php...),02/10 19:05
34F→: 那也許考慮把認證機制做成cookie/session型式會更好.02/10 19:07
35F→: 是否一定堅持要使用HTTP auth ?02/10 19:08
36F→: 雖然 HTTP auth 搭配 cookie 可能還是有 partial solution,02/10 19:09
37F→: 但使用上應該還蠻蹩腳的...02/10 19:11
38F→: 大致上是認證失敗就檢查是否有某cookie,沒有就設定初值,02/10 19:13
39F→: 有就檢查是第幾次的值,然後重設新值或設定清除;02/10 19:15
40F→: 若認證成功也要設定清除.02/10 19:16