Difference between revisions of "Documentation/Labs/BRAINS and ITKv4 issue"
From Slicer Wiki
Hjmjohnson (talk | contribs) |
|||
(One intermediate revision by one other user not shown) | |||
Line 1: | Line 1: | ||
− | |||
This page documents the experiment done while trying to sort the issue causing BRAINS to crash when built within Slicer. | This page documents the experiment done while trying to sort the issue causing BRAINS to crash when built within Slicer. | ||
+ | See this bug report: http://na-mic.org/Bug/view.php?id=3071 | ||
== Experiment Setup == | == Experiment Setup == | ||
Line 18: | Line 18: | ||
== Experiment results == | == Experiment results == | ||
− | + | <pre> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
======================= | ======================= | ||
[FAILED] | [FAILED] | ||
Line 50: | Line 41: | ||
======================================== | ======================================== | ||
− | I have a separate build of Slicer available under a branch named "InstrumentForBRAINSFitFailures" at git@github.com:hjmjohnson/Slicer.git ( a version built on top of today's SlicerSVN) | + | I have a separate build of Slicer available under a branch named "InstrumentForBRAINSFitFailures" at |
+ | git@github.com:hjmjohnson/Slicer.git ( a version built on top of today's SlicerSVN) | ||
− | This branch includes a version of BRAINSTools with a very small program that demonstrates the problem we are seeing in BRAINSFit. | + | This branch includes a version of BRAINSTools with a very small program that demonstrates the problem |
+ | we are seeing in BRAINSFit. | ||
− | I still think there is something that is overwriting the vtable of this object, and that is the root cause of our problems, but I don't know how to continue debugging that guess. | + | I still think there is something that is overwriting the vtable of this object, and that is the root cause |
+ | of our problems, but I don't know how to continue debugging that guess. | ||
Line 117: | Line 111: | ||
NOTE: NOTE: NOTE: Line 59 of DebugSlicerCLI.cxx DOES NOT CALL "SetUpperBound" it calls "GetUpperBound", and that is the same type of problem we are seeing in BRAINSFit. | NOTE: NOTE: NOTE: Line 59 of DebugSlicerCLI.cxx DOES NOT CALL "SetUpperBound" it calls "GetUpperBound", and that is the same type of problem we are seeing in BRAINSFit. | ||
+ | </pre> |
Latest revision as of 12:48, 22 April 2013
Home < Documentation < Labs < BRAINS and ITKv4 issueThis page documents the experiment done while trying to sort the issue causing BRAINS to crash when built within Slicer.
See this bug report: http://na-mic.org/Bug/view.php?id=3071
Experiment Setup
Here is the VERY simple program that is failing: https://github.com/BRAINSia/BRAINSTools/blob/SlicerDebugBRAINSFitInstrumentation/BRAINSFit/DebugSlicerProg.cxx
In my slicer build tree: /scratch/johnsonhj/src/Slicer-DEBUG/BRAINSTools (SlicerDebugBRAINSFitInstrumentation)
With git remove –v: origin git://github.com/BRAINSia/BRAINSTools.git (push)
And BRAINSTools hash 31beee592eba2d98655b864e6dc704ac9bf995e8
Experiment results
======================= [FAILED] Build Slicer: Run Slicers version of Debug johnsonhj@neuron$ /scratch/johnsonhj/src/Slicer-DEBUG/Slicer-build/bin/DebugSlicerProg TESTING: STARTED PRE : 9945 Segmentation fault: 11 ======================= [PASSED] Build Stand Alone version of BRAINSTools using the same source code: johnsonhj@neuron$ /scratch/johnsonhj/src/Slicer-DEBUG/BT_DEBUG/bin/DebugSlicerProg TESTING: STARTED PRE : 9945 0 POST: 9945 9945 PRE : 9945 0 POST: 9945 9945 TESTING: STOPPED ======================================== I have a separate build of Slicer available under a branch named "InstrumentForBRAINSFitFailures" at git@github.com:hjmjohnson/Slicer.git ( a version built on top of today's SlicerSVN) This branch includes a version of BRAINSTools with a very small program that demonstrates the problem we are seeing in BRAINSFit. I still think there is something that is overwriting the vtable of this object, and that is the root cause of our problems, but I don't know how to continue debugging that guess. This is mostly for my own note taking: There are the experiments that I have done to try to figure out what the heck is going on: "StandAlone Shared library build of BRAINSTools" BSA_BASE=/scratch/johnsonhj/src/BT_FAILURED_SHARED/BT-DEBUG-SHARED/ "Slicer build of BRAINSTools" SLICER_BASE=/Volumes/scratch/johnsonhj/src/Slicer-DEBUG TEST #1: [PASS] =========================== BIN=${BSA_BASE}/bin/BRAINSFit DYLD_LIBRARY_PATH=${BSA_BASE}/ITKv4-install/lib TEST #2: [PASS] =========================== BIN=${SLICER_BASE}/Slicer-build/lib/Slicer-4.2/cli-modules/BRAINSFit DYLD_LIBRARY_PATH=${BSA_BASE}/ITKv4-install/lib TEST #3: [FAIL] =========================== BIN=${BSA_BASE}/bin/BRAINSFit DYLD_LIBRARY_PATH=${SLICER_BASE}/ITKv4-build/lib TEST #4: [FAIL] =========================== BIN=${SLICER_BASE}/Slicer-build/lib/Slicer-4.2/cli-modules/BRAINSFit DYLD_LIBRARY_PATH=${SLICER_BASE}/ITKv4-build/lib TEST #5: [FAIL] ================================ Build with DICOM support turned off. BIN=${SLICER_BASE}/Slicer-build/lib/Slicer-4.2/cli-modules/BRAINSFit DYLD_LIBRARY_PATH=${SLICER_BASE}/ITKv4-build/lib TEST #6: [FAIL] ================================ Build minimum CLI based program to replicate the problem. When debugging TEST #6 I put a break point at: /Volumes/scratch/johnsonhj/src/Slicer-DEBUG/BRAINSTools/BRAINSFit/DebugSlicerCLI.cxx line 59 59├> std::cout << "PRE : " << LBFGSBoptimizer->GetUpperBound().size() << " " << upperBound.size() << std::endl; When stepping into the line, it reports segfault at line 209 of /Volumes/scratch/johnsonhj/src/Slicer-DEBUG/ITKv4/Modules/Numerics/Optimizers/src/itkLBFGSBOptimizer.cxx 204│ void 205│ LBFGSBOptimizer 206│ ::SetUpperBound( 207│ const BoundValueType & value) 208│ { 209├> m_UpperBound = value; 210│ if ( m_OptimizerInitialized ) 211│ { 212│ m_VnlOptimizer->set_upper_bound(m_UpperBound); 213│ } 214│ 215│ this->Modified(); 216│ } NOTE: NOTE: NOTE: Line 59 of DebugSlicerCLI.cxx DOES NOT CALL "SetUpperBound" it calls "GetUpperBound", and that is the same type of problem we are seeing in BRAINSFit.