#!/usr/bin/env python ################################################## # Gnuradio Python Flow Graph # Title: integration block with large decimation segfaults # Author: Martin Dudok van Heel # Description: an integrate block crashes with segfault with decimation 262144 or above. Probably accessing input buffer outside valid region. # Generated: Thu Feb 12 22:58:34 2015 ################################################## from gnuradio import blocks from gnuradio import eng_notation from gnuradio import gr from gnuradio.eng_option import eng_option from gnuradio.filter import firdes from optparse import OptionParser class test_large_decimation_crash_integrate_ff(gr.top_block): def __init__(self, decimation=262144): gr.top_block.__init__(self, "integration block with large decimation segfaults") ################################################## # Parameters ################################################## self.decimation = decimation ################################################## # Blocks ################################################## self.null_source = blocks.null_source(gr.sizeof_float*1) self.null_sink = blocks.null_sink(gr.sizeof_float*1) self.integrate_ff = blocks.integrate_ff(decimation) ################################################## # Connections ################################################## self.connect((self.integrate_ff, 0), (self.null_sink, 0)) self.connect((self.null_source, 0), (self.integrate_ff, 0)) def get_decimation(self): return self.decimation def set_decimation(self, decimation): self.decimation = decimation if __name__ == '__main__': parser = OptionParser(option_class=eng_option, usage="%prog: [options]") parser.add_option("-d", "--decimation", dest="decimation", type="intx", default=262144, help="Set decimation. 262143 succeeds but 262144 and above fails with segfault [default=%default]") (options, args) = parser.parse_args() tb = test_large_decimation_crash_integrate_ff(decimation=options.decimation) tb.start() tb.wait()