デバイスでgdbserverを実行するとき(良いgdbserver :2345 myapp
)、gdbserver は端末を完全にブロックします。アンパサンドを追加または押すと、バックグラウンドで実行されません&
。^z私も確認しました:Kubuntuでも再現可能です。
シェルコマンドを使用する理由は次のとおりです。gdbserverでこれを実行する方法がわかりません。私は走った後に麻痺した感じを受けました。
ベストアンサー1
これはOPで動作するようです。
gdbserver :2345 ls > /dev/null 2>&1 &
その理由は、プログラムがデーモン化されるとSTDIO 0、1、2がすべて閉じられるためだと思います。次に開くIOは0になります。プログラムがprintfやscanfなどのエントリに0、1、または2を使用しようとすると、無効なIOまたは閉じたIOに対して機能します。たとえば、デーモン化されている場合、ソケットは0(STDIN)で開き、printfが呼び出されると開かれていないFDに書き込まれるため、プログラムは中断されます。