Hi,

I am having trouble recording using Creative Labs Sound Blaster Audigy 2
NX. The linux rec program worked fine. But whenever I use arecord (e.g.
arecord test.wav), I got Segmentation fault. I pinpointed the problem to
the function  pcm_read in aplay.c. Specifically it was the line:

 r = readi_func(handle, data, count);

that caused the fault. readi_func was called 3 times without problem.
But the 4th call will cause the fault. gdb showed that a NULL pointer
was encountered in function snd_pcm_rate_grab_next_period: rate->slave
was NULL. The following is a stack trace when the fault happened.
However, rate->slave was not NULL during the 3 normal readi_func calls
and I checked that the handle passed to readi_func was always the same.
What could happen that made the pointer NULL for the 4th call? I am
running 2.4.21-4.EL kernel and gcc 3.2.3. Any information will be highly
appreciated.

Thanks.

Yitao


Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1220721088 (LWP 7171)]
0xb758de5d in snd_pcm_rate_grab_next_period (pcm=0x8052d10, hw_offset=0)
at pcm_rate.c:1047
1047                    cont = rate->slave->buffer_size - slave_offset;
(gdb) bt
#0  0xb758de5d in snd_pcm_rate_grab_next_period (pcm=0x8052d10,
hw_offset=0) at pcm_rate.c:1047
#1  0xb758e430 in snd_pcm_rate_avail_update (pcm=0x8052d10) at
pcm_rate.c:1205
#2  0xb75782fc in snd_pcm_avail_update (pcm=0x0) at pcm.c:2087
#3  0xb757c236 in snd_pcm_read_areas (pcm=0x8052d10, areas=0xbffff3b0,
offset=0, size=1000,
    func=0xb759159c <snd_pcm_mmap_read_areas>) at pcm.c:5968
#4  0xb759178f in snd_pcm_mmap_readi (pcm=0x8052d10, buffer=0x805b0a8,
size=1000) at pcm_mmap.c:230
#5  0xb7576c21 in snd_pcm_readi (pcm=0x8052d10, buffer=0x805b0a8,
size=4) at pcm_local.h:378
#6  0x0804d8d7 in pcm_read (
    data=0x805b0a8 "\200\200\200\200", '\177' <repeats 11 times>, '\200'
<repeats 24 times>, '\177' <repeats 12 times>, '\200' <repeats 29
times>, "\177\177\200\200\200\200\177\177\177\200\200\200\200\200",
'\177' <repeats 30 times>, "\200", '\177' <repeats 75 times>...,
rcount=1000) at aplay.c:1411
#7  0x0804eed5 in capture_go (fd=5, count=4294967294, rtype=2,
name=0xbffffb50 "test") at aplay.c:2096
#8  0x0804f257 in capture (name=0xbffffb50 "test") at aplay.c:2191
#9  0x0804bc5e in main (argc=2, argv=0xbffff664) at aplay.c:801
(gdb) print rate
$1 = (snd_pcm_rate_t *) 0x8052d10
(gdb) print *rate
$2 = {slave = 0x0, close_slave = 0, watom = {begin = 12, end = 1},
appl_ptr = 0, hw_ptr = 6,
  type = RATE_TYPE_BANDLIMIT, get_idx = 1, put_idx = 3, pitch = 1, func
= 0,
  sformat = SND_PCM_FORMAT_U8, srate = 8000, states = 0x3e8, pareas =
0x1e848, sareas = 0x0}
(gdb) print rate->slave
$3 = (snd_pcm_t *) 0x0
(gdb) print slave_offset
$4 = 16000
(gdb) print rate->slave
$5 = (snd_pcm_t *) 0x0
(gdb) print rate->slave->buf
buf                buffer.0           buffer_size
buffer_time        bufsize.1
buf.0              buffer_frames      buffer_size.0
buffered_vfprintf
buffer             buffer_pos         buffer_size.1      buflen.1
(gdb) print rate->slave->buffer_size
Cannot access memory at address 0x88




-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
_______________________________________________
Alsa-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-devel

Reply via email to