⑴ gdb的backtrace,watch命令各有什麼含義
本文參考《Debug Hacks》一書所作 —— 每天進步一點點。
一. 准備
通過 gcc 的 -g 選項生成調試信息。
$ gcc -Wall -O2 -g 源文件
-g選項可以使用僅可GDB使用的一些附加調試信息;這些附加信息可以使GDB工作的更好,但是也可能令其他調試器崩潰或者不能讀該文件。
二. GDB基本用法
啟動:
$ gdb 可執行文件名
設置斷點:
(gdb) break 斷點
程序運行後,到達斷點就會自動暫停運行。此時就可以查看該時刻的變數值,顯示棧針,重新設置斷點或者重新運行等。
斷點可以通過函數名,文件內的行號來設置,也可以先指定文件名再指定行號,還可以指定與暫停位置的偏移量,或者用地址來設置。
(gdb) break 函數名
(gdb) break 行號
(gdb) break 文件名:行號
(gdb) break 文件名:函數名
(gdb) break +偏移量
(gdb) break -偏移量
(gdb) break *地址
在設置斷點的時候,如果不指定斷點位置,就在下一行代碼上設置斷點。
條件斷點
(gdb) break 斷點 if 條件
僅在特定條件下中斷。對於已存在的斷點,可使用condition為其添加條件。
(gdb) break 斷點編號 條件
而刪除指定編號斷點的觸發條件同樣使用condition。
(gdb) condition 斷點編號
查詢斷點
(gdb) info break
監視點
要想找到變數在何處被改變,可以使用 watch 命令(監視點, watchpoint)。
(gdb) watch <表達式>
<表達式>發生變化時暫停運行。<表達式>的意思是常量或變數等。
(gdb) awatch <表達式>
<表達式>被訪問、改變時暫停運行。
(gdb) rwatch <表達式>
<表達式>被訪問時暫停運行。
刪除斷點和監視點
用 delete 命令刪除斷點和監視點。
(gdb) delete <編號>
運行
(gdb) run 參數
用 run 命令開始運行。執行run,就會執行到設置了斷點的位置後暫停運行。
經常用到的一個操作是在main()上設置斷點,然後執行到main()函數暫停。按照上面的內容,操作命令有:
(gdb) break main
(gdb) run
對於執行到 main() 函數暫停的操作,我們可以使用 start 命令達到同樣的效果。
(gdb) start
顯示棧幀
backtrace 命令可以在遇到斷點而暫停執行時顯示棧幀。此外,backtrace 的別名還有 where 和 info stack。
(gdb) backtrace
顯示所有棧幀。
(gdb) backtrace N
只顯示開頭 N 個棧幀。
(gdb) backtrace -N
只顯示最後 N 個棧幀。
(gdb) backtrace full
(gdb) backtrace full N
(gdb) backtrace full -N
不僅顯示backtrace,還有顯示局部變數。
顯示棧幀之後,就可以看出程序在何處停止(即斷點的位置),以及程序的調用路徑。
顯示變數
print 命令可以顯示變數。
(gdb) print 變數
顯示寄存器
info registers可以顯示寄存器。
(gdb) info registers
單步執行
單步執行的意思是根據源代碼一行一行地執行。
執行源代碼中一行的命令為 next 。執行時如果遇到函數調用,可能想執行到函數內部,此時可以使用 step 命令。
next 命令和 step 命令都是執行源代碼中的一行。如果要逐條執行匯編指令,可以分別使用 nexti 和 stepi 命令。
繼續運行
調試時,可以使用 continue 命令繼續運行程序。程序會在遇到斷點後再次暫停運行。如果沒有遇到斷點,就會一直運行到結束。
(gdb) continue
(gdb) continue 次數
指定次數可以忽略斷點。例如, continue 5 則 5 次遇到斷點不停止,第 6 次遇到斷點時才暫停執行。
⑵ kalilinux使用watch指令出現錯誤
1、開機按下F8後,在出現的Windows高級啟動選項界面中,選擇「安全模式」
2、按下回車鍵,進入安全模式後重新啟動計算機,再次按下F8,在Windows高級啟動選項界面中,選擇「最後一次正確配置」,按下回車鍵。
3、處理好以後,建議你裝一個騰訊電腦管家來全方位的實時保護你的電腦。
⑶ 雙擊一個cmd文件會到指定目錄執行grunt watch命令。這個CMD文件如何寫
我實在不知道您在說什麼
您的路徑放在哪裡呢
注冊表?ini?環境變數?
您的「修改路徑」、「切換項目」是具體什麼,我不能理解
最好具體說明下 我理解能力不好
發幾張圖片就更好了
如果要合並cmd可以用call子程序實現
要打開一個文件夾可以用explorer打開並選中某文件
不同情況要用不同方法
⑷ oppo watch快捷指令怎麼用
一般情況下的話,我覺得像這款的快捷指令的話,可以直接就從個人中心進行設置
⑸ 如何用命令查看linux的網卡吞吐量或最大網卡流量
linux查看網卡吞吐量和網卡流量用自帶命令,iptraf查看。
1 命令行直接輸入:iptraf(如果沒有,使用yum install iptraf安裝)
此外還有很多工具命令可以查看:
watch命令:
watch -n 1 "/sbin/ifconfig eth0 | grep bytes"。
⑹ mac有沒有類似linux的watch
1.命令格式:
watch[參數][命令]
2.命令功能:
可以將命令的輸出結果輸出到標准輸出設備,多用於周期性執行命令/定時執行命令
3.命令參數:
-n或--interval watch預設每2秒運行一下程序,可以用-n或-interval來指定間隔的時間。
-d或--differences 用-d或--differences 選項watch 會高亮顯示變化的區域。 而-d=cumulative選項會把變動過的地方(不管最近的那次有沒有變動)都高亮顯示出來。
-t 或-no-title 會關閉watch命令在頂部的時間間隔,命令,當前時間的輸出。
-h, --help 查看幫助文檔
4.使用實例:
實例1:
命令:每隔一秒高亮顯示網路鏈接數的變化情況
代碼如下:
watch -n 1 -d netstat -ant
說明:
其它操作:
切換終端: Ctrl+x
退出watch:Ctrl+g
實例2:每隔一秒高亮顯示http鏈接數的變化情況
命令:
代碼如下:
watch -n 1 -d 『pstree|grep http』
說明:
每隔一秒高亮顯示http鏈接數的變化情況。 後面接的命令若帶有管道符,需要加『』將命令區域歸整。
實例3:實時查看模擬攻擊客戶機建立起來的連接數
命令:
代碼如下:
watch 『netstat -an | grep:21 | \ grep《模擬攻擊客戶機的IP》| wc -l』
說明:
實例4:監測當前目錄中 scf『 的文件的變化
命令:
代碼如下:
watch -d 』ls -l|grep scf『
實例5:10秒一次輸出系統的平均負載
命令:
代碼如下:
watch -n 10 』cat /proc/loadavg『
上面就是Linux watch命令的用法介紹了,如果你想要周期性的執行某個程序,有或者想要了解某個命令執行的結果怎樣,不妨使用watch命令吧。
⑺ VC6.0中要清除watch下的全部變數,使用的菜單命令是什麼,若程序進入死循環,怎樣退出
若程序進入死循環,怎樣退出:ctrl+break
C語言驗收不容易啊~兄弟你是哪個老師的?
⑻ redis為什麼需要watch
不知道你說的watch是啥意思,php操作redis很簡單的,舉個例子:
<?php
//連接本地的 Redis 服務
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
echo "Connection to server sucessfully";
//設置 redis 字元串數據
$redis->set("tutorial-name", "Redis tutorial");
// 獲取存儲的數據並輸出
echo "Stored string in redis:: " . $redis->get("tutorial-name");
?>
這是操作字元串的,還有操作其他redis數據類型的。
要成功先確保你php有裝redis擴展,並且本地redis服務正常跑著的。
如果沒有解決你的問題的話,麻煩你解釋一下問題吧,你看都沒人回你,因為你問題不清楚啊。
如果解決了,就請採納吧。
⑼ 在cmd窗口下輸入gulp watch,這條命令是干什麼用的什麼意思
所在目錄下是不是有個gulpfile.js的文件 裡面是不是有這個方法
gulp.task('watch', function () {
});
執行的是這個
⑽ akta explorer100 在運行過程中如何使用watch指令
Uniorn程序有兩種運行辦法
一種是手動運行,即在系統控制(System Control)模塊中選擇「手動(Manual)」菜單發出
的手動指令進行控制。在這種情況下,是不能使用Watch指令的,只能人工監測。
第二種是方法運行,在方法編輯器(Method Editor)模塊中選擇「方法向導(Method
Wizard)」按鈕,就是那個魔術棒一樣的圖標。選擇合適的參數值並單擊「下一步(Next)」按鈕。在「方法編輯器(Method Editor)」下半部分的「指令框(Instruction box)」中選擇監測(Watch)指令,並使用「插入(Insert)」、「更改(Change)」、「替換(Replace)」或「刪除(Delete)」按鈕。
監測內容:
高於(Greater_Than):信號超過了某個值。
低於(Less_Than):信號低於指定的值。
斜率高於(Slope_Greater_Than):信號的更改比率超過了指定的值,以監控單位/分(例如mAU/min)為單位表示。
斜率低於(Slope_Less_Than):信號的更改比率低於指定的值,以監控單位/分(例如mAU/min)為單位表示。
低於或谷值(Less_Than_Or_Valley):信號低於指定的值或者檢測到一個谷值。僅當檢測到Peak_Max 後才會檢測谷值,如果信號中出現了一個最近的最小值,並且隨後信號的遞增超過最近最小值的102%加上Delta_Peak 值,則稱之為谷值
峰最大值(Peak_Max):信號為最近的最大值乘以指定的因子減去Delta_Peak 值。指定的因子=1 時會檢測峰最大值。
穩定基線(Stable_Baseline):在以「分鍾」為單位的時間參數指定的期間內,該信號在Delta_Base 值設置的限制內保持穩定。