Hi,
hm, you're right, the only way that can happen is if either the
input or the tap pointers are invalid; strange.
Since the line in question,
465 out[i+d_out_idx] =
d_filters[d_filtnum]->filter(&in[count+d_out_idx]);
in pfb_clock_sync_ccf.cc isn't all that suspicious, let's harass GDB
for a moment.
1. since you're in stack frame #0 by default, can you see whether
you can `print number` from the gdb shell? It's possible that GCC
optimized that variable away, so try `print bPtr`, too.
2. From 1. we know whether this happens on the first loop iteration
or a subsequent one; that will show in which direction we'd look for
bugs
3. `frame 1` brings us into the context of the
fir_filter_ccf::filter function. `print al` and `print d_ntaps`,
please!
4. We're getting a bit fancy here with gdb, but whatever :) `print
d_aligned_taps[al]`
Hope this gives us a push forward!
Greetings,
Marcus
On 12/06/2016 07:24 PM, devin kelly
wrote:
I changed my volk_config like so
volk_32fc_32f_dot_prod_32fc
generic generic
And I still get a segfault:
gdb python core.8035
.....
Program terminated with signal 11, Segmentation fault.
#0 0x00007f116379277f in
volk_32fc_32f_dot_prod_32fc_generic (result=0x56de260,
input=0x7f1126cac680, taps=0x56ea860,
num_points=45) at
/local_disk/spectrum_challenge_src/volk/kernels/volk/volk_32fc_32f_dot_prod_32fc.h:83
83 *realpt += ((*aPtr++) * (*bPtr));
Missing separate debuginfos, use: debuginfo-install
python-2.7.5-48.el7.x86_64
(gdb) bt
#0 0x00007f116379277f in
volk_32fc_32f_dot_prod_32fc_generic (result=0x56de260,
input=0x7f1126cac680, taps=0x56ea860, num_points=45) at
/local_disk/spectrum_challenge_src/volk/kernels/volk/volk_32fc_32f_dot_prod_32fc.h:83
#1 0x00007f114ffff74f in
gr::filter::kernel::fir_filter_ccf::filter(std::complex<float>
const*) ()
at
/local_disk/spectrum_challenge/lib64/libgnuradio-filter-3.7.10.1.so.0.0.0
#2 0x00007f1150356b41 in
gr::digital::pfb_clock_sync_ccf_impl::general_work(int,
std::vector<int, std::allocator<int> >&,
std::vector<void const*, std::allocator<void
const*> >&, std::vector<void*,
std::allocator<void*> >&) ()
at
/local_disk/spectrum_challenge/lib64/libgnuradio-digital-3.7.10.1.so.0.0.0
#3 0x00007f1163d14d80 in
gr::block_executor::run_one_iteration() ()
at
/local_disk/spectrum_challenge/lib64/libgnuradio-runtime-3.7.10.1.so.0.0.0
#4 0x00007f1163d56090 in
gr::tpb_thread_body::tpb_thread_body(boost::shared_ptr<gr::block>,
int) ()
at
/local_disk/spectrum_challenge/lib64/libgnuradio-runtime-3.7.10.1.so.0.0.0
#5 0x00007f1163d49791 in
boost::detail::function::void_function_obj_invoker0<gr::thread::thread_body_wrapper<gr::tpb_container>,
void>::invoke(boost::detail::function::function_buffer&) ()
at
/local_disk/spectrum_challenge/lib64/libgnuradio-runtime-3.7.10.1.so.0.0.0
#6 0x00007f1163cfae60 in
boost::detail::thread_data<boost::function0<void>
>::run() ()
at
/local_disk/spectrum_challenge/lib64/libgnuradio-runtime-3.7.10.1.so.0.0.0
#7 0x00007f11627f927a in thread_proxy () at
/lib64/libboost_thread-mt.so.1.53.0
#8 0x00007f117e4d8dc5 in start_thread () at
/lib64/libpthread.so.0
#9 0x00007f117dafe73d in clone () at /lib64/libc.so.6
(gdb) f 0
#0 0x00007f116379277f in
volk_32fc_32f_dot_prod_32fc_generic (result=0x56de260,
input=0x7f1126cac680, taps=0x56ea860, num_points=45) at
/local_disk/spectrum_challenge_src/volk/kernels/volk/volk_32fc_32f_dot_prod_32fc.h:83
83 *realpt += ((*aPtr++) * (*bPtr));
(gdb) info locals
res = {0, 0}
realpt = 0x7f114680f570
imagpt = 0x7f114680f574
aPtr = 0x7f1126cac684
bPtr = 0x56ea860
number = 0
(gdb) print realpt
$1 = (float *) 0x7f114680f570
(gdb) print *realpt
$2 = 0
(gdb) print aPtr
$3 = (const float *) 0x7f1126cac684
(gdb) print *aPtr
Cannot access memory at address 0x7f1126cac684
(gdb) print bPtr
$4 = (const float *) 0x56ea860
(gdb) print *bPtr
$5 = 0.000685208186
Since aPtr is just
const
float* aPtr = (float*)input;
Maybe the issue is with pfb_clock_sync_ccf_impl? I'm not
sure.
Devin
_______________________________________________
Discuss-gnuradio mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
|