[英]How do I cross-compile for ARM and debug on another machine in NetBeans?
我試圖建立一個NetBeans x86_64環境,可以在其中編寫代碼並在IDE中添加斷點,為ARM進行交叉編譯,然后在運行gdbserver的raspberry pi上運行二進制文件。
一個常見的選擇是使用遠程構建主機來構建,運行和調試二進制文件,但是我最終將在沒有足夠開發工具鏈空間的嵌入式設備上工作。 我現在正在使用pi來學習一旦嵌入式計算機到貨后如何進行編譯和調試。 請不要建議使用遠程構建主機。
現在,我最好的猜測是用./run.sh "${OUTPUT_PATH}"
替換run命令,其中run.sh是一個小型bash腳本,它將新編譯的二進制文件傳輸到pi,然后運行gdbserver --debug localhost:6000 ~/app
。 在NetBeans傳輸二進制文件並運行gdbserver之后,有一個我可以連接到NetBeans的gdbserver插件 ,但是給我的只是gdb的標准輸出(這很有意義)。 我想要的是使用IDE設置並逐步執行斷點,並觀察變量的變化,但是我似乎無法使用此設置來使它起作用。
什么是正確的方法?
gdbserver-調試localhost:6000〜/ app
這與我所熟悉的gdbserver
版本記錄的調用語法不匹配,但是即使不知道其形式,該參數似乎還是錯誤的。
“本地主機”始終是指同一台計算機,而不是另一台計算機。 因此,指定“ localhost”將意味着您將在同一台計算機上運行gdbserver
和gdb
,這使使用gdbserver
的整個過程變得gdbserver
。
目前尚不清楚您的命令會導致gdbserver
做什么,但是兩種可能性都不是。
如果它導致gdbserver
偵聽回送接口而不是INADDR_ANY,則只有在目標本身上運行的程序才可以聯系gdbserver
進程,從而排除了遠程gdb。
如果它導致gdbserver
嘗試連接到已經運行的遠程gdb
,那么它也不起作用,因為它將嘗試連接到不存在的本地 gdb
。
您可能想做的是
target> gdbserver :6000 ~/app
devmachine>gdb build/app
gdb> target remote target_machine_ip:6000
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.