主に再利用性を高めるために、コードをより多くの Go パッケージに分割することで、コードの春の大掃除を行いました (それぞれの「ビルディング ブロック」が独自のパッケージに含まれています)。
インポート エラーを修正した後、プログラムが突然ビルドされないことに気付きました。「go build」を実行すると、nosplit スタック オーバーフローエラーが返されます。
ロボット main.init: nosplit スタック オーバーフロー
120 guaranteed after split check in main.init 112 on entry to robot/web.init 104 on entry to robot/controller.init 96 on entry to robot/slam.init 88 on entry to robot/slam/hector.init 80 on entry to hectormapping/map/mapimages.init 72 on entry to hectormapping/map/maprep.init 64 on entry to hectormapping/map/mapproccontainer.init 56 on entry to hectormapping/scanmatcher.init 48 on entry to hectormapping/map/gridmap/occbase.init 40 on entry to hectormapping/map/gridmap/base.init 32 on entry to hectormapping/map/gridmap.init 24 on entry to github.com/skelterjohn/go%2ematrix.init 16 on entry to math.init 8 on entry to math.init┬À1 0 on entry to runtime.panicindex -8 on entry to runtime.morestack00
runtime.main: nosplit スタック オーバーフロー
120 guaranteed after split check in runtime.main 128 after runtime.main uses -8 120 on entry to main.init 112 on entry to robot/web.init 104 on entry to robot/controller.init 96 on entry to robot/slam.init 88 on entry to robot/slam/hector.init 80 on entry to hectormapping/map/mapimages.init 72 on entry to hectormapping/map/maprep.init 64 on entry to hectormapping/map/mapproccontainer.init 56 on entry to hectormapping/scanmatcher.init 48 on entry to hectormapping/map/gridmap/occbase.init 40 on entry to hectormapping/map/gridmap/base.init 32 on entry to hectormapping/map/gridmap.init 24 on entry to github.com/skelterjohn/go%2ematrix.init 16 on entry to math.init 8 on entry to math.init┬À1 0 on entry to runtime.panicindex -8 on entry to runtime.morestack00
これが何であるか知っている人はいますか?場合によっては、これは修正されたと思われるバグであることを除いて、何が原因であるかに関する多くのドキュメントを見つけることができません。
一部のコードは「src」フォルダー内の新しいフォルダーに分割されたため、ファイル構造は次のようになりました。
src/robot/main.go (main() lives here)
src/robot/(...) (application-specific packages)
src/hectormapping/(...) (stand-alone package used in "robot")
Windows 7 (x64) で Go 1.0.3 を使用しています。