<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/4.6.6">
</HEAD>
<BODY>
The full backtrace shows:<BR>
<BR>
<BLOCKQUOTE>
    (gdb) backtrace full<BR>
    #0  0x0000000000428d80 in read_callback (s=0xced1b0, length=4, userdata=0x92d600) at mainwindow.cc:385<BR>
            w = 0x92d600<BR>
            data = 0x0<BR>
            v = 7.1675486625997992e-317<BR>
            __PRETTY_FUNCTION__ = "void read_callback(pa_stream*, size_t, void*)"<BR>
    #1  0x00007ffff3adad8b in ?? () from /usr/lib/x86_64-linux-gnu/libpulse.so.0<BR>
    No symbol table info available.<BR>
    #2  0x00007fffee0bb46d in ?? () from /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-4.0.so<BR>
    No symbol table info available.<BR>
    #3  0x00007ffff3d17b77 in ?? () from /usr/lib/x86_64-linux-gnu/libpulse-mainloop-glib.so.0<BR>
    No symbol table info available.<BR>
    #4  0x00007ffff3f63526 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0<BR>
    No symbol table info available.<BR>
    #5  0x00007ffff3f63878 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0<BR>
    No symbol table info available.<BR>
    #6  0x00007ffff3f63b3a in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0<BR>
    No symbol table info available.<BR>
    #7  0x00007ffff59a444d in gtk_main () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0<BR>
    No symbol table info available.<BR>
    #8  0x00007ffff7a1a8f1 in Gtk::Main::run(Gtk::Window&) () from /usr/lib/x86_64-linux-gnu/libgtkmm-3.0.so.1<BR>
    No symbol table info available.<BR>
    #9  0x0000000000438981 in main (argc=1, argv=0x7fffffffdb28) at pavucontrol.cc:670<BR>
            kit = <incomplete type><BR>
            mainWindow = 0x92d600<BR>
            m = 0x8ee130<BR>
            options = <incomplete type><BR>
            group = <incomplete type><BR>
            entry = <incomplete type><BR>
            __PRETTY_FUNCTION__ = "int main(int, char**)"<BR>
</BLOCKQUOTE>
<BR>
So indeed data is NULL.<BR>
--<BR>
John<BR>
<BR>
<BR>
On Sun, 2014-02-23 at 04:52 +0100, Vincent Lefevre wrote:
<BLOCKQUOTE TYPE=CITE>
<PRE>
On 2014-02-22 18:58:08 -0500, John M. wrote:
<FONT COLOR="#737373">> Program received signal SIGSEGV, Segmentation fault.</FONT>
<FONT COLOR="#737373">> 0x0000000000428d80 in read_callback (s=0xcea800, length=4,</FONT>
<FONT COLOR="#737373">> userdata=0x9561b0) at mainwindow.cc:385</FONT>
<FONT COLOR="#737373">> 385      v = ((const float*) data)[length / sizeof(float) -1];</FONT>
[...]

Thanks. The src/mainwindow.cc file contains:

    if (pa_stream_peek(s, &data, &length) < 0) {
        show_error(_("Failed to read data from stream"));
        return;
    }

    assert(length > 0);
    assert(length % sizeof(float) == 0);

    v = ((const float*) data)[length / sizeof(float) -1];

And according to the pa_stream_peek documentation

  <A HREF="http://freedesktop.org/software/pulseaudio/doxygen/stream_8h.html#ac2838c449cde56e169224d7fe3d00824">http://freedesktop.org/software/pulseaudio/doxygen/stream_8h.html#ac2838c449cde56e169224d7fe3d00824</A>

"If there is no data at the current read index, it means that either
the buffer is empty or it contains a hole (that is, the write index
is ahead of the read index but there's no data where the read index
points at). If the buffer is empty, data will be NULL and nbytes will
be 0. If there is a hole, data will be NULL and nbytes will contain
the length of the hole."

data can be NULL and the code is obviously buggy.

</PRE>
</BLOCKQUOTE>
</BODY>
</HTML>