[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