Saya memiliki program yang mengambil masukan dari stdin dan juga mengambil beberapa parameter dari baris perintah. Ini terlihat seperti ini:
cat input.txt > myprogram -path "/home/user/work"
Saya mencoba men-debug kode dengan gdb di dalam emacs, dengan Mx gdb, saya mencoba memuat program dengan perintah:
gdb cat input.txt > myprogram -path "/home/user/work"
Namun, gdb tidak menyukainya.
Pertanyaan diambil dari sini . Sayangnya saya tidak mengerti solusinya dan tidak yakin apa yang harus dilakukan selain mengkompilasi dengan -g
opsi dan menjalankan perintah Mx gdb.
emacs
gdb
redirect
command-line-arguments
vinc456.dll
sumber
sumber
<
daninput.txt
sebagaiargv
argumen untuk program saya :( Saya akan terus menggali jawaban ini dengan gdb 8.2.1 saya: stackoverflow.com/questions/3544325/…Ada beberapa cara untuk melakukannya:
atau
atau
di mana
run
perintah gdb (r
) menggunakan secara default argumen seperti yang ditetapkan sebelumnya denganset args
.sumber
gdb -ex 'r -path /home/user/work < input.txt' myprogram
di varian ketiga?gdb -ex 'b main' -ex 'r -path /home/user/work < input.txt' myprogram
.Demi kelengkapan saat memulai sesi debugging, ada juga opsi --args. yaitu)
sumber
gdb --args yourprog.out input.txt
Dan jika Anda tidak perlu men-debug dari awal, Anda juga dapat melampirkan ke proses yang sudah berjalan dengan menggunakan:
di mana xxx adalah id proses. Maka Anda tidak perlu memberi tahu gdb tentang argumen awal.
sumber