5

私はバグのあるコードを書いています。

例:

(print (/ 1 0))

CcCcでコンパイルしようとしています。そして、スタックフレームでエラーをキャッチします。

エラーが発生したコードの行を確認したい。スタックフレームの行で「v」をクリックし、エラーをキャッチしました。

Error: Cannot find source location for: #<COMPILED-CODE-LOCATION 
(SB-C::VARARGS-ENTRY /)>  

コードの行に移動するにはどうすればよいですか?

スクリーンショットここに画像の説明を入力してください

4

2 に答える 2

6

エラーからわかるように、ジャンプ先の行はSB-C、SBCL の一部である package のどこかにあります。SBCL ソースがない場合 (バイナリをインストールしたか削除したか)、それらを入手し (現在の SBCL バージョンに関連)、次のようにリンクする必要があります ( http://www.cliki.sbclrcによると)。 .net/SLIME%20Features ):

(setf (logical-pathname-translations "SYS") 
      '(("SYS:SRC;**;*.*.*" #P"/opt/sbcl/src/**/*.*")
        ("SYS:CONTRIB;**;*.*.*" #P"/opt/sbcl/contrib/**/*.*")))

または、ソースから SBCL をコンパイルするだけで、それらがどこにあるかがわかります。

于 2011-10-09T11:57:24.103 に答える
0

その行のどこかに (proclaim '(optimize debug)) がありますか? この関数は、システムが取得できるすべてのデバッグ データを持っていることを保証します。

于 2012-03-05T16:23:36.377 に答える