[alsa-devel] Errors in application building
Paul Kavan
pkavan at gmail.com
Tue Jul 10 21:19:32 CEST 2007
On 7/5/07, Paul Kavan <pkavan at gmail.com> wrote:
>
> On 7/3/07, Paul Kavan <pkavan at gmail.com > wrote:
>
> > 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.
> >
>
> Still trying to see if I can determine what is going on here. I tried
> 'run' with gdb and get the following:
>
> /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"...
> (gdb) run
> Starting program: /usr/sbin/grh_audio
> Using host libthread_db library "libthread_db.so.1".
> Segmentation fault
>
>
> Any ideas why this is occurring.
>
> Also, I get the following warning when compiling:
>
> grh_audio.c:112: warning: pointer targets in passing argument 3 of
> 'snd_pcm_hw_params_set_rate_near' differ in signedness
>
> for the line:
>
> 112: if ((err = snd_pcm_hw_params_set_rate_near (capture_handle,
> hw_params, &sample_rate, 0)) < 0)
>
>
> I have googled this and cannot seem to find an answer. I used some example
> code for this, so perhaps there is something wrong with that. I tried to
> find a page detailing the call, but could not even find that.
>
> Any clues, pointers, etc. on this are greatly appreciated.
>
> Paul
>
Hello all:
I have worked on getting some things cleaned up in my kernel and rfs to
ensure I was not running out of ramdisk space on my arm development board. I
am confident that part is okay now, but still getting a segmentation fault
when I try to run my application. Using gdb, I still get:
--snip--
/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"...
(gdb) start
Breakpoint 1 at 0x8a4c: file grh_audio.c, line 32.
Starting program: /usr/sbin/grh_audio
Using host libthread_db library "libthread_db.so.1".
Segmentation fault
--snip--
Not sure what the problem is. I have the alsa libs configured as they are
supposed to. I assume that the problem has to do with the alsa-libs, but I
have been successful in getting aplay to work.
Any suggestions?
Paul
***************************************
Paul David Kavan
Project Engineer
GRH Electronics, Inc.
402-734-4900
pkavan at gmail.com
***************************************
More information about the Alsa-devel
mailing list