0

私のプログラムでは、実行時に LoadLibrary を使用して dll をロードします。リリースモードで実行すると、すべてが正常に機能します。

しかし、プログラムをデバッグ モードで実行しようとすると、ロード ライブラリが SIGILL で停止し、デバッガは sti 命令で停止したことを示します。

また、dll からの直接呼び出しによって、プログラムのロード中に dll をリンクしようとしました。しかし、プログラムのロード中に SIGILL が発生します。

qt5で出荷されたmingw48を使用しています。私はそのdllのデバッグには興味がなく、コードの他の自己記述部分をデバッグするだけです。

私がこれまでに見つけたように、sti/cli 命令は特権コードのみです。私が理解しているように、gdb で実行されているコードには特権がありません。

私はすでに信号を無視しようとしました::signal(SIGILL, SIG_IGN);

ここではGdb コマンドhandle SIGILL pass nostop noprintが役立ちますが、プログラムが他の場所で SIGILL するかどうかを知りたいです

私が本当に必要としているのは、プログラムの残りの部分がデバッグされている間に、そのライブラリを非デバッグ モードでロードすることです。

4

1 に答える 1