[Mrtrix-discussion] Problem when rotating fibre tracks with 64 bit Ubuntu

David.Raffelt at csiro.au David.Raffelt at csiro.au
Wed Dec 10 00:10:37 PST 2008


Hi Donald,
I have been able to get everything in mrtrix to work nicely on the new 64bit version of Ubuntu (Intrepid) except for one problem when displaying fibre tracks.  When I overlay some tracks on an anatomical scan I can view them fine, until I turn off 'lock to image axis' and try to rotate the brain.  I can often get a number (~10) of frames around the axis however it will eventually crash with a seg fault.  I have applied the patch for FOD overlays you previously supplied for Kerstin and it works a treat.  I have a nvidia 8800GT and acceleration is on.

Below is a back trace after compiling with -debug, I am keen to have a go at finding the problem however I was hoping you may be able to point me in the right direction.  There is no rush as I am not needing to use this feature currently.

Cheers!
Dave



Starting program: /home/raf022/builds/mrtrix-0.2.5/bin/mrview anat.nii
[Thread debugging using libthread_db enabled]
[New Thread 0x7fff5bdd57c0 (LWP 13195)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fff5bdd57c0 (LWP 13195)]
0x000000000048b21c in MR::Image::Mapper::re (this=0x874800, offset=18446638106128941056) at lib/image/mapper.h:253
253           return (get_func (segment[nseg], offset - nseg*segsize));
(gdb) bt full
#0  0x000000000048b21c in MR::Image::Mapper::re (this=0x874800, offset=18446638106128941056) at lib/image/mapper.h:253
        nseg = 1466007082154
#1  0x000000000048b45e in MR::Image::Object::re (this=0x8745c0, offset=18446638106128941056) at lib/image/object.h:118
No locals.
#2  0x000000000048c670 in MR::Image::Interp::re (this=0xf82060) at lib/image/interp.h:212
        val = 0
        os = 18446638106128941056
#3  0x00000000004db0a6 in MR::Image::Interp::get (this=0xf82060, format=MR::Image::Real, val=@0x7fff6e817780, val_im=@0x7fff6e817784)
    at lib/image/interp.h:290
        __PRETTY_FUNCTION__ = "void MR::Image::Interp::get(MR::Image::OutputType, float&, float&)"
#4  0x00000000004db35f in MR::Viewer::ColourMap::get (mode=0, interp=@0xf82060, format=MR::Image::Real, val=0x7fff6e817780) at src/mrview/colourmap.h:203
No locals.
#5  0x00000000004db5d4 in MR::Viewer::ColourMap::map (mode=0, scale=@0x8e7990, interp=@0xf82060, format=MR::Image::Real, rgb=0x7fff6e817850 "")
    at src/mrview/colourmap.h:234
        val = {2.00342809e+28, nan(0x400000), nan(0x400000)}
#6  0x00000000004d72cc in MR::Viewer::Slice::Renderer::update_texture_free (this=0x8e7960) at src/mrview/slice.cpp:291
        x = 0
        y = 0
        I = (MR::Image::Interp &) @0xf82060: {<MR::Image::Position> = {image = @0x8745c0, x = {-2147483648, -2147483648, -2147483648, 0 <repeats 13 times>},
    offset = 18446638106128941056, stride = 0x874858}, PR = {{0.898187101, -0.0486194827, -0.0297463313, -74.0328827}, {0.0486772582, 0.897121012,
      -0.00161212392, -100.644524}, {0.0298417956, 2.10240803e-08, 0.897943497, -125.840485}}, RP = {{1.10887289, 0.0600953735, 0.0368417166, 92.777504}, {
      -0.0602330118, 1.11141253, 2.62355861e-08, 107.398361}, {-0.0368517116, -0.00199720496, 1.11243141, 137.059662}}, bounds = {191.5, 255.5, 255.5},
  out_of_bounds = false, faaa = -nan(0x400000), faab = -nan(0x400000), faba = -nan(0x400000), fabb = -nan(0x400000), fbaa = -nan(0x400000),
  fbab = -nan(0x400000), fbba = -nan(0x400000), fbbb = -nan(0x400000)}
        RGB = "\000\000"
#7  0x00000000004d8d08 in MR::Viewer::Slice::Renderer::update (this=0x8e7960, S=@0x7fff6e817910) at src/mrview/slice.cpp:83
        I = (MR::Image::Interp &) @0xf82060: {<MR::Image::Position> = {image = @0x8745c0, x = {-2147483648, -2147483648, -2147483648, 0 <repeats 13 times>},
    offset = 18446638106128941056, stride = 0x874858}, PR = {{0.898187101, -0.0486194827, -0.0297463313, -74.0328827}, {0.0486772582, 0.897121012,
      -0.00161212392, -100.644524}, {0.0298417956, 2.10240803e-08, 0.897943497, -125.840485}}, RP = {{1.10887289, 0.0600953735, 0.0368417166, 92.777504}, {
      -0.0602330118, 1.11141253, 2.62355861e-08, 107.398361}, {-0.0368517116, -0.00199720496, 1.11243141, 137.059662}}, bounds = {191.5, 255.5, 255.5},
  out_of_bounds = false, faaa = -nan(0x400000), faab = -nan(0x400000), faba = -nan(0x400000), fabb = -nan(0x400000), fbaa = -nan(0x400000),
  fbab = -nan(0x400000), fbba = -nan(0x400000), fbbb = -nan(0x400000)}
        update_texture = true
#8  0x00000000004d3f5a in MR::Viewer::Pane::GLArea::on_expose_event (this=0x8e7ac8, event=0x7fff6e817eb0) at src/mrview/pane.cpp:72
        S = {image = @0x8e78a8, colourmap = @0xf81f98, format = @0xf81f9c, scaling = @0xf81fa0, channel = 0xf81fb0, orientation = @0x8e7910,
  projection = @0x8e7920, focus = @0x8e7924, interpolate = @0xf82010}
        error_code = 9337576
#9  0x00007fff6599d663 in Gtk::Widget_Class::expose_event_callback () from /usr/lib/libgtkmm-2.4.so.1
No symbol table info available.
#10 0x00007fff632b1908 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#11 0x00007fff6110c25d in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#12 0x00007fff61121c3b in ?? () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#13 0x00007fff6112348a in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#14 0x00007fff61123b33 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#15 0x00007fff633b474e in ?? () from /usr/lib/libgtk-x11-2.0.so.0
---Type <return> to continue, or q <return> to quit---
No symbol table info available.
#16 0x00007fff632ab21a in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#17 0x00007fff62a015b5 in ?? () from /usr/lib/libgdk-x11-2.0.so.0
No symbol table info available.
#18 0x00007fff62a01b41 in gdk_window_process_all_updates () from /usr/lib/libgdk-x11-2.0.so.0
No symbol table info available.
#19 0x00007fff62a01b69 in ?? () from /usr/lib/libgdk-x11-2.0.so.0
No symbol table info available.
#20 0x00007fff629e595b in ?? () from /usr/lib/libgdk-x11-2.0.so.0
No symbol table info available.
#21 0x00007fff60c6ed3b in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#22 0x00007fff60c7250d in ?? () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#23 0x00007fff60c72a3d in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#24 0x00007fff632ab7a7 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#25 0x00007fff6592c73b in Gtk::Main::run () from /usr/lib/libgtkmm-2.4.so.1
No symbol table info available.
#26 0x000000000047ee9c in main (argc=2, argv=0x7fff6e818928) at cmd/mrview.cpp:66
        app = {<MR::App> = {_vptr.App = 0x744730, static command_description = 0x75d400, static command_arguments = 0x75d840,
    static command_options = 0x75d8a0, static default_options = {
      {<std::vector<MR::Argument,std::allocator<MR::Argument> >> = {<std::_Vector_base<MR::Argument,std::allocator<MR::Argument> >> = {
            _M_impl = {<std::allocator<MR::Argument>> = {<__gnu_cxx::new_allocator<MR::Argument>> = {<No data fields>}, <No data fields>}, _M_start = 0x0,
              _M_finish = 0x0, _M_end_of_storage = 0x0}}, <No data fields>}, sname = 0x101 <Address 0x101 out of bounds>,
        lname = 0x2 <Address 0x2 out of bounds>, desc = 0x0, mandatory = 9, allow_multiple = 49,
        static End = {<std::vector<MR::Argument,std::allocator<MR::Argument> >> = {<std::_Vector_base<MR::Argument,std::allocator<MR::Argument> >> = {
              _M_impl = {<std::allocator<MR::Argument>> = {<__gnu_cxx::new_allocator<MR::Argument>> = {<No data fields>}, <No data fields>}, _M_start = 0x0,
                _M_finish = 0x0, _M_end_of_storage = 0x0}}, <No data fields>}, sname = 0x0, lname = 0x0, desc = 0x0, mandatory = false,
          allow_multiple = false, static End = <same as static member of an already seen type>}},
      {<std::vector<MR::Argument,std::allocator<MR::Argument> >> = {<std::_Vector_base<MR::Argument,std::allocator<MR::Argument> >> = {
            _M_impl = {<std::allocator<MR::Argument>> = {<__gnu_cxx::new_allocator<MR::Argument>> = {<No data fields>}, <No data fields>},
              _M_start = 0x7fff665fbc60, _M_finish = 0x72e9890, _M_end_of_storage = 0x15cbc20}}, <No data fields>},
        sname = 0x4868a00 <Address 0x4868a00 out of bounds>, lname = 0x100f11a5bd833109 <Address 0x100f11a5bd833109 out of bounds>,
        desc = 0xeff13a947bdb3109 <Address 0xeff13a947bdb3109 out of bounds>, mandatory = true, allow_multiple = false,
        static End = {<std::vector<MR::Argument,std::allocator<MR::Argument> >> = {<std::_Vector_base<MR::Argument,std::allocator<MR::Argument> >> = {
              _M_impl = {<std::allocator<MR::Argument>> = {<__gnu_cxx::new_allocator<MR::Argument>> = {<No data fields>}, <No data fields>}, _M_start = 0x0,
                _M_finish = 0x0, _M_end_of_storage = 0x0}}, <No data fields>}, sname = 0x0, lname = 0x0, desc = 0x0, mandatory = false,
          allow_multiple = false, static End = <same as static member of an already seen type>}},
      {<std::vector<MR::Argument,std::allocator<MR::Argument> >> = {<std::_Vector_base<MR::Argument,std::allocator<MR::Argument> >> = {
            _M_impl = {<std::allocator<MR::Argument>> = {<__gnu_cxx::new_allocator<MR::Argument>> = {<No data fields>}, <No data fields>},
              _M_start = 0x10000, _M_finish = 0x0, _M_end_of_storage = 0x0}}, <No data fields>}, sname = 0x0, lname = 0x0, desc = 0x0, mandatory = false,
        allow_multiple = false,
        static End = {<std::vector<MR::Argument,std::allocator<MR::Argument> >> = {<std::_Vector_base<MR::Argument,std::allocator<MR::Argument> >> = {
              _M_impl = {<std::allocator<MR::Argument>> = {<__gnu_cxx::new_allocator<MR::Argument>> = {<No data fields>}, <No data fields>}, _M_start = 0x0,
                _M_finish = 0x0, _M_end_of_storage = 0x0}}, <No data fields>}, sname = 0x0, lname = 0x0, desc = 0x0, mandatory = false,
          allow_multiple = false, static End = <same as static member of an already seen type>}},
      {<std::vector<MR::Argument,std::allocator<MR::Argument> >> = {<std::_Vector_base<MR::Argument,std::allocator<MR::Argument> >> = {
---Type <return> to continue, or q <return> to quit---
            _M_impl = {<std::allocator<MR::Argument>> = {<__gnu_cxx::new_allocator<MR::Argument>> = {<No data fields>}, <No data fields>}, _M_start = 0x0,
              _M_finish = 0x0, _M_end_of_storage = 0x0}}, <No data fields>}, sname = 0x0, lname = 0x0, desc = 0x0, mandatory = false,
        allow_multiple = false,
        static End = {<std::vector<MR::Argument,std::allocator<MR::Argument> >> = {<std::_Vector_base<MR::Argument,std::allocator<MR::Argument> >> = {
              _M_impl = {<std::allocator<MR::Argument>> = {<__gnu_cxx::new_allocator<MR::Argument>> = {<No data fields>}, <No data fields>}, _M_start = 0x0,
                _M_finish = 0x0, _M_end_of_storage = 0x0}}, <No data fields>}, sname = 0x0, lname = 0x0, desc = 0x0, mandatory = false,
          allow_multiple = false, static End = <same as static member of an already seen type>}},
      {<std::vector<MR::Argument,std::allocator<MR::Argument> >> = {<std::_Vector_base<MR::Argument,std::allocator<MR::Argument> >> = {
            _M_impl = {<std::allocator<MR::Argument>> = {<__gnu_cxx::new_allocator<MR::Argument>> = {<No data fields>}, <No data fields>}, _M_start = 0x0,
              _M_finish = 0x0, _M_end_of_storage = 0x7fff15d45170}}, <No data fields>}, sname = 0x2 <Address 0x2 out of bounds>,
        lname = 0x15c8970 "?w\234>??R?;T?>```f\035`\206??x B?\237?N?{f", desc = 0x0, mandatory = 48, allow_multiple = 92,
        static End = {<std::vector<MR::Argument,std::allocator<MR::Argument> >> = {<std::_Vector_base<MR::Argument,std::allocator<MR::Argument> >> = {
              _M_impl = {<std::allocator<MR::Argument>> = {<__gnu_cxx::new_allocator<MR::Argument>> = {<No data fields>}, <No data fields>}, _M_start = 0x0,
                _M_finish = 0x0, _M_end_of_storage = 0x0}}, <No data fields>}, sname = 0x0, lname = 0x0, desc = 0x0, mandatory = false,
          allow_multiple = false, static End = <same as static member of an already seen type>}}},
    parsed_arguments = {<std::_Vector_base<const gchar*,std::allocator<const gchar*> >> = {
        _M_impl = {<std::allocator<const gchar*>> = {<__gnu_cxx::new_allocator<const gchar*>> = {<No data fields>}, <No data fields>}, _M_start = 0x8040f0,
          _M_finish = 0x8040f8, _M_end_of_storage = 0x8040f8}}, <No data fields>},
    parsed_options = {<std::_Vector_base<MR::ParsedOption,std::allocator<MR::ParsedOption> >> = {
        _M_impl = {<std::allocator<MR::ParsedOption>> = {<__gnu_cxx::new_allocator<MR::ParsedOption>> = {<No data fields>}, <No data fields>},
          _M_start = 0x0, _M_finish = 0x0, _M_end_of_storage = 0x0}}, <No data fields>},
    argument = {<std::_Vector_base<MR::ArgBase,std::allocator<MR::ArgBase> >> = {
        _M_impl = {<std::allocator<MR::ArgBase>> = {<__gnu_cxx::new_allocator<MR::ArgBase>> = {<No data fields>}, <No data fields>}, _M_start = 0x874a60,
          _M_finish = 0x874a70, _M_end_of_storage = 0x874a70}}, <No data fields>},
    option = {<std::_Vector_base<MR::OptBase,std::allocator<MR::OptBase> >> = {
        _M_impl = {<std::allocator<MR::OptBase>> = {<__gnu_cxx::new_allocator<MR::OptBase>> = {<No data fields>}, <No data fields>}, _M_start = 0x0,
          _M_finish = 0x0, _M_end_of_storage = 0x0}}, <No data fields>}, static log_level = 1}, <No data fields>}
        kit = <incomplete type>
        window = {<> = {<No data fields>}, images = {<std::_Vector_base<MR::RefPtr<MR::Viewer::Image>,std::allocator<MR::RefPtr<MR::Viewer::Image> > >> = {
      _M_impl = {<std::allocator<MR::RefPtr<MR::Viewer::Image> >> = {<__gnu_cxx::new_allocator<MR::RefPtr<MR::Viewer::Image> >> = {<No data fields>}, <No data fields>}, _M_start = 0xf81c60, _M_finish = 0xf81c70, _M_end_of_storage = 0xf81c70}}, <No data fields>}, image = {ptr = 0xf81f80, count = 0xf81c40}, axes = {
    3, 4}, slice = {image = {ptr = 0x0, count = 0x883f10}, colourmap = 0, format = MR::Image::Real, scaling = {multiplier = nan(0x400000),
      offset = nan(0x400000), min = nan(0x400000), max = nan(0x400000)}, channel = {0 <repeats 16 times>}, orientation = {x = {nan(0x400000), nan(0x400000),
        nan(0x400000), nan(0x400000)}}, projection = 2, focus = {static Invalid = <error reading variable>, interpolate = true},
  static Main = 0x7fff6e818200, main_box = <incomplete type>, menubar = <incomplete type>, file_menu = <incomplete type>, view_menu = <incomplete type>,
  image_menu = <incomplete type>, help_menu = <incomplete type>, colourmap_menu = <incomplete type>, paned = <incomplete type>,
  statusbar = <incomplete type>, display_area = {<> = {<No data fields>},
    panes = {<std::_Vector_base<MR::RefPtr<MR::Viewer::Pane>,std::allocator<MR::RefPtr<MR::Viewer::Pane> > >> = {
        _M_impl = {<std::allocator<MR::RefPtr<MR::Viewer::Pane> >> = {<__gnu_cxx::new_allocator<MR::RefPtr<MR::Viewer::Pane> >> = {<No data fields>}, <No data fields>}, _M_start = 0x8e7760, _M_finish = 0x8e7770, _M_end_of_storage = 0x8e7770}}, <No data fields>}, NR = 1, NC = 1, idle_connection = {slot_ = 0x0}},
  sidebar = {<> = {<No data fields>}, static names = {0x50e5bc "tractography", 0x50e5c9 "ROI analysis", 0x50e5d6 "orientation plot"},
    entry = {<> = {<No data fields>}, ID = {<Gtk::TreeModelColumnBase> = {type_ = 24, index_ = 0}, <No data fields>}, name = {<Gtk::TreeModelColumnBase> = {
          type_ = 64, index_ = 1}, <No data fields>}}, box = <incomplete type>, selector = <incomplete type>, selector_list = {pCppObject_ = 0x8f8440},
    list = {0x1021480, 0x0, 0x0}}}
        ret = 0
(gdb)


More information about the Mrtrix-discussion mailing list