通常在gdb調(diào)試時要打印出一些字符串的內(nèi)容,通過
p str@str_len 打印字符串時,,通常有長度的限制,,我測試linux機器上默認為200個,,但實際輸出的長度str_len可能大于該值。
結果不能夠完全輸出,,而進行了省略,,通過命令set print element 0就可以了。eg:
p *prefix@req_line_sz $25 = "GET /web/0/http/0/%E7%8E%B0%E5%9C%A8%E6%B3%A8%E5%86%8C%E4%B9%B0%E4%B8%80%E5%BE%97%E5%85%AD%EF%BC%8C%E5%8D%B3%E8%B4%AD%E4%B9%B0%20%E4%B8%87%E7%BD%91.%E4%B8%AD%E5%9B%BD,%E5%8F%AF%E5%BE%97%E5%88%B0%20%E4"... (gdb) set print element 0 (gdb) set print element 0 (gdb) p *prefix@req_line_sz $26 = "GET /web/0/http/0/%E7%8E%B0%E5%9C%A8%E6%B3%A8%E5%86%8C%E4%B9%B0%E4%B8%80%E5%BE%97%E5%85%AD%EF%BC%8C%E5%8D%B3%E8%B4%AD%E4%B9%B0%20%E4%B8%87%E7%BD%91.%E4%B8%AD%E5%9B%BD,%E5%8F%AF%E5%BE%97%E5%88%B0%20%E4%B8%87%E7%BD%91.CN;%E8%90%AC%E7%B6%B2.CN;%E4%B8%87%E7%BD%91.%E4%B8%AD%E5%9B%BD;%E8%90%AC%E7%B6%B2.%E4%B8%AD%E5%9B%BD;%E4%B8%87%E7%BD%91.%E4%B8%AD%E5%9C%8B;%E8%90%AC%E7%B6%B2.%E4%B8%AD%E5%9C%8B HTTP/1.1\r\n" 如果要 輸出16進制,,則使用 p/x *prefix@req_line_sz, 通常在輸出 中文編碼內(nèi)容 時,,使用 16進制有 用 。
|
|
來自: syden1981 > 《調(diào)試》