[alsa-devel] Errors in application building

Paul Kavan pkavan at gmail.com
Tue Jul 3 23:14:13 CEST 2007


On 7/3/07, Lee Revell <rlrevell at joe-job.com> wrote:
>
> Use gdb, strace is not useful for this
>
> On 7/3/07, Paul Kavan <pkavan at gmail.com> wrote:
> > Hello all:
> >
> > Just tried to run with the warnings:
> >
> >
> > >
> > >
> > > grhuser at pcL7:$ arm-linux-gcc -lasound -Wall -o grh_audio grh_audio.c
> > > grh_audio.c: In function 'grh_capture':
> > > grh_audio.c:112: warning: pointer targets in passing argument 3 of
> > 'snd_pcm_hw_params_set_rate_near' differ in signedness
> > > grh_audio.c: In function 'grh_playback':
> > > grh_audio.c:207: warning: pointer targets in passing argument 3 of
> > 'snd_pcm_hw_params_set_rate_near' differ in signedness
> > >
> > > Which comes from the code:
> > >
> > > 112:   if ((err = snd_pcm_hw_params_set_rate_near (capture_handle,
> > hw_params, &sample_rate, 0)) < 0)
> > >
> > >
> > > 207:   if ((err = snd_pcm_hw_params_set_rate_near (playback_handle,
> > hw_params, &sample_rate, 0)) < 0)
> >
> > However,  I get a seg fault when I ran it. The strace of this is:
> >
> > /usr/sbin $ strace grh_audio
> > execve("/usr/sbin/grh_audio", ["grh_audio"], [/* 7 vars */]) = 0
> > mmap2(NULL, 20, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
> =
> > 0x40005000
> > stat("/etc/ld.so.cache", {st_mode=S_IFREG|0644, st_size=1150, ...}) = 0
> > open("/etc/ld.so.cache", O_RDONLY)      = 3
> > mmap2(NULL, 1150, PROT_READ, MAP_SHARED, 3, 0) = 0x40006000
> > close(3)                                = 0
> > open("/usr/lib/libasound.so.2", O_RDONLY) = 3
> > fstat(3, {st_mode=S_IFREG|0755, st_size=762072, ...}) = 0
> > mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
> 0) =
> > 0x40007000
> > read(3,
> > "\177ELF\1\1\1a\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0x\367\1\000"...,
> > 4096) = 4096
> > mmap2(NULL, 794624, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
> > 0x4000e000
> > mmap2(0x4000e000, 745564, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3,
> 0)
> > = 0x4000e000
> > mmap2(0x400cc000, 15508, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3,
> > 0xb6) = 0x400cc000
> > close(3)                                = 0
> > munmap(0x40007000, 4096)                = 0
> > open("/lib/libgcc_s.so.1", O_RDONLY)    = 3
> > fstat(3, {st_mode=S_IFREG|0644, st_size=44167, ...}) = 0
> > mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
> 0) =
> > 0x40007000
> > read(3,
> > "\177ELF\1\1\1a\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0X\25\0\000"...,
> > 4096) = 4096
> > mmap2(NULL, 65536, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
> 0x400d0000
> > mmap2(0x400d0000, 28800, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3,
> 0) =
> > 0x400d0000
> > mmap2(0x400df000, 548, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3,
> 0x7)
> > = 0x400df000
> > close(3)                                = 0
> > munmap(0x40007000, 4096)                = 0
> > open("/lib/libc.so.0", O_RDONLY)        = 3
> > fstat(3, {st_mode=S_IFREG|0644, st_size=309840, ...}) = 0
> > mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
> 0) =
> > 0x40007000
> > read(3,
> > "\177ELF\1\1\1a\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0000\253\0"...,
> > 4096) = 4096
> > mmap2(NULL, 360448, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
> > 0x400e0000
> > mmap2(0x400e0000, 302380, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3,
> 0)
> > = 0x400e0000
> > mmap2(0x40132000, 5172, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3,
> > 0x4a) = 0x40132000
> > mmap2(0x40134000, 16020, PROT_READ|PROT_WRITE,
> > MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40130
> > close(3)                                = 0
> > munmap(0x40007000, 4096)                = 0
> > open("/lib/libm.so.0", O_RDONLY)        = 3
> > fstat(3, {st_mode=S_IFREG|0644, st_size=45812, ...}) = 0
> > mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
> 0) =
> > 0x40007000
> > read(3,
> > "\177ELF\1\1\1a\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0t\22\0\000"...,
> > 4096) = 4096
> > mmap2(NULL, 81920, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
> 0x40138000
> > mmap2(0x40138000, 41428, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3,
> 0) =
> > 0x40138000
> > mmap2(0x4014a000, 4100, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3,
> 0xa)
> > = 0x4014a000
> > close(3)                                = 0
> > munmap(0x40007000, 4096)                = 0
> > open("/lib/libdl.so.0", O_RDONLY)       = 3
> > fstat(3, {st_mode=S_IFREG|0644, st_size=8900, ...}) = 0
> > mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
> 0) =
> > 0x40007000
> > read(3,
> > "\177ELF\1\1\1a\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0(\10\0\000"...,
> > 4096) = 4096
> > mmap2(NULL, 40960, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
> 0x4014c000
> > mmap2(0x4014c000, 5760, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3,
> 0) =
> > 0x4014c000
> > mmap2(0x40155000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3,
> 0x1)
> > = 0x40155000
> > close(3)                                = 0
> > munmap(0x40007000, 4096)                = 0
> > open("/lib/libpthread.so.0", O_RDONLY)  = 3
> > fstat(3, {st_mode=S_IFREG|0644, st_size=63852, ...}) = 0
> > mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
> 0) =
> > 0x40007000
> > read(3,
> > "\177ELF\1\1\1a\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0D<\0\0004"...,
> > 4096) = 4096
> > mmap2(NULL, 106496, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
> > 0x40156000
> > mmap2(0x40156000, 40952, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3,
> 0) =
> > 0x40156000
> > mmap2(0x40168000, 21732, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3,
> > 0xa) = 0x40168000
> > mmap2(0x4016e000, 5788, PROT_READ|PROT_WRITE,
> > MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4016e0
> > close(3)                                = 0
> > munmap(0x40007000, 4096)                = 0
> > open("/lib/libgcc_s.so.1", O_RDONLY)    = 3
> > fstat(3, {st_mode=S_IFREG|0644, st_size=44167, ...}) = 0
> > close(3)                                = 0
> > open("/lib/libc.so.0", O_RDONLY)        = 3
> > fstat(3, {st_mode=S_IFREG|0644, st_size=309840, ...}) = 0
> > close(3)                                = 0
> > open("/lib/libc.so.0", O_RDONLY)        = 3
> > fstat(3, {st_mode=S_IFREG|0644, st_size=309840, ...}) = 0
> > close(3)                                = 0
> > open("/lib/libc.so.0", O_RDONLY)        = 3
> > fstat(3, {st_mode=S_IFREG|0644, st_size=309840, ...}) = 0
> > close(3)                                = 0
> > open("/lib/libc.so.0", O_RDONLY)        = 3
> > fstat(3, {st_mode=S_IFREG|0644, st_size=309840, ...}) = 0
> > close(3)                                = 0
> > open("/lib/libc.so.0", O_RDONLY)        = 3
> > fstat(3, {st_mode=S_IFREG|0644, st_size=309840, ...}) = 0
> > close(3)                                = 0
> > munmap(0x40006000, 1150)                = 0
> > stat("/lib/ld-uClibc.so.0", {st_mode=S_IFREG|0755, st_size=21096, ...})
> = 0
> > mprotect(0x40132000, 4096, PROT_READ)   = 0
> > mprotect(0x4014a000, 4096, PROT_READ)   = 0
> > mprotect(0x40155000, 4096, PROT_READ)   = 0
> > mprotect(0x40168000, 4096, PROT_READ)   = 0
> > mprotect(0x4000c000, 4096, PROT_READ)   = 0
> > ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B115200 opost isig icanon echo
> > ...}) = 0
> > ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B115200 opost isig icanon echo
> > ...}) = 0
> > getpid()                                = 756
> > getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) =
> 0
> > setrlimit(RLIMIT_STACK, {rlim_cur=2040*1024, rlim_max=RLIM_INFINITY}) =
> 0
> > rt_sigaction(SIGRTMIN, {0x4015fd70, [], 0x4000000 /* SA_??? */}, NULL,
> 8) =
> > 0
> > rt_sigaction(SIGRT_1, {0x4015fc98, [RTMIN], 0x4000000 /* SA_??? */},
> NULL,
> > 8) = 0
> > rt_sigaction(SIGRT_2, {0x4015f2d0, [], 0x4000000 /* SA_??? */}, NULL, 8)
> = 0
> > rt_sigprocmask(SIG_BLOCK, [RTMIN], NULL, 8) = 0
> > rt_sigprocmask(SIG_UNBLOCK, [RT_1], NULL, 8) = 0
> > --- SIGSEGV (Segmentation fault) @ 0 (0) ---
> > +++ killed by SIGSEGV +++
> > Process 756 detached
> >
> >
> > I am still trying to locate why those warnings are popping up, but as
> that
> > part of the code is not called immediately, I am wondering why the seg
> fault
> > is occurring. Any clues?



Lee:

Have attempted to run this with gdb. However, I get:

/usr/sbin $ gdb grh_audio


dlopen failed on 'libthread_db.so.1' - File not found
GDB will not be able to debug pthreads.

GNU gdb 6.5
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "arm-linux-uclibc"...(no debugging symbols found)

(gdb)

Trying to determine why...will let you know asap what I find.

Paul



-- 
***************************************
Paul David Kavan
Project Engineer
GRH Electronics, Inc.
402-734-4900
pkavan at gmail.com
***************************************


More information about the Alsa-devel mailing list