Intel Pin を用いて投機実行のシミュレーションを行うプログラムのデバグの話。 投機実行のシミュレーション中は本来実行されない path が実行されるので、適宜シグナルの処理が必要。 すなわち、例えば SIGSEGV の場合、シミュレーション中に SIGSEGV が発生したらそれを抑え込む必要がある。 実際に SIGSEGV(に限らず他のシグナルも)が発生した場合には、そのシグナルを抑え込んだ上でシミュレーションを中断する処理を入れている。 問題になるのは、Pintool(シミュレートするプログラム)が何らかのバグで SIGSEGV を発生させ、落ちる場合である。 この時、発生する SIGSEGV は 2 種類ある。それは: …
Read More