Linux Sound subsystem development
 help / color / mirror / Atom feed
* emu10k1 moudle oops.
@ 1999-08-15 19:40 frodo1
  0 siblings, 0 replies; only message in thread
From: frodo1 @ 1999-08-15 19:40 UTC (permalink / raw)
  To: linux-sound

I am currently running suse 6.1 with kernel version 2.2.11-ac3 and the
sblive moudle emu10k1. When running the following program (which is part
of SDL .10 - http://www.devolution.com/~slouken/SDL/):

/* Program to load a wave file and loop playing it using SDL sound */

/* loopwaves.c is much more robust in handling WAVE files -- 
	This is only for simple WAVEs
*/

#include <stdio.h>
#include <stdlib.h>
#include <signal.h>

#include "SDL.h"
#include "SDL_audio.h"

struct {
	SDL_AudioSpec spec;
	Uint8   *sound;			/* Pointer to wave data */
	Uint32   soundlen;		/* Length of wave data */
	int      soundpos;		/* Current play position */
} wave;

void fillerup(void *unused, Uint8 *stream, int len)
{
	Uint8 *waveptr;
	int    waveleft;

	/* Set up the pointers */
	waveptr = wave.sound + wave.soundpos;
	waveleft = wave.soundlen - wave.soundpos;

	/* Go! */
	while ( waveleft <= len ) {
		SDL_MixAudio(stream, waveptr, waveleft, SDL_MIX_MAXVOLUME);
		stream += waveleft;
		len -= waveleft;
		waveptr = wave.sound;
		waveleft = wave.soundlen;
		wave.soundpos = 0;
	}
	SDL_MixAudio(stream, waveptr, len, SDL_MIX_MAXVOLUME);
	wave.soundpos += len;
}

static int done = 0;
void poked(int sig)
{
	done = 1;
}

main(int argc, char *argv[])
{
	/* Load the SDL library */
	if ( SDL_Init(SDL_INIT_AUDIO) < 0 ) {
		fprintf(stderr, "Couldn't initialize SDL: %s\n",SDL_GetError());
		exit(1);
	}
	atexit(SDL_Quit);

	if ( argv[1] = NULL ) {
		fprintf(stderr, "Usage: %s <wavefile>\n", argv[0]);
		exit(1);
	}

	/* Load the wave file into memory */
	if ( SDL_LoadWAV(argv[1],
			&wave.spec, &wave.sound, &wave.soundlen) = NULL ) {
		fprintf(stderr, "Couldn't load %s: %s\n",
						argv[1], SDL_GetError());
		exit(1);
	}
	wave.spec.callback = fillerup;

	/* Set the signals */
#ifdef SIGHUP
	signal(SIGHUP, poked);
#endif
	signal(SIGINT, poked);
#ifdef SIGQUIT
	signal(SIGQUIT, poked);
#endif
	signal(SIGTERM, poked);

	/* Initialize fillerup() variables */
	if ( SDL_OpenAudio(&wave.spec, NULL) < 0 ) {
		fprintf(stderr, "Couldn't open audio: %s\n", SDL_GetError());
		SDL_FreeWAV(wave.sound);
		exit(2);
	}
	SDL_PauseAudio(0);

	/* Let the audio run */
	while ( ! done )
		SDL_Delay(1000);

	/* Clean up on signal */
	SDL_CloseAudio();
	SDL_FreeWAV(wave.sound);
	exit(0);
}


I recive an oops which i use ksymoops, the output is as follows:

WARNING: This version of ksymoops is obsolete.
WARNING: The current version can be obtained from ftp://ftp.ocs.com.au/pub/ksymoops
Options used: -V (default)
              -o /lib/modules/2.2.11-ac3/ (default)
              -k /proc/ksyms (default)
              -l /proc/modules (default)
              -m /usr/src/linux/System.map (default)
              -c 1 (default)

You did not tell me where to find symbol information.  I will assume
that the log matches the kernel and modules that are running right now
and I'll use the default options above for symbol resolution.
If the current kernel and/or modules do not match the log, you can get
more accurate output by telling me the kernel version and where to find
map, modules, ksyms etc.  ksymoops -h explains the options.

Oops: 0000
CPU:    0
EIP:    0010:[<d08455d6>]
EFLAGS: 00010202
eax: 00000000   ebx: d0850000   ecx: c2456000   edx: ccac5620
esi: ccac5620   edi: c2456000   ebp: c1633f28   esp: c1633f18
ds: 0018   es: 0018   ss: 0018
Process loopwave (pid: 8213, process nr: 46, stackpage¡633000)
Stack: 00000003 00000004 c1633fa8 00000023 00000000 c012dc57 ccac5620
c2456000
       00000023 00000004 caa21758 00000023 00000145 00000003 c1632000
7fffffff
       c2456000 c2456000 c012e128 00000004 c1633fa8 c1633fa4 c1632000
00000000
Call Trace: [<c012dc57>] [<c012e128>] [<c0124ab7>] [<c0108ee4>]
Code: 8b 40 1c 83 c0 4c 85 ff 74 0f 85 c0 74 0b 57 50 56 e8 ec 83

>>EIP: d08455d6 <mod_firmware_load+70b6/????>
Trace: c012dc57 <do_select+133/214>
Trace: c012e128 <sys_select+3f0/548>
Trace: c0124ab7 <sys_write+db/100>
Trace: c0108ee4 <system_call+34/40>
Code:  d08455d6 <mod_firmware_load+70b6/????>  00000000 <_EIP>: <=Code:  d08455d6 <mod_firmware_load+70b6/????>     0:	8b 40 1c          	movl   0x1c(%eax),%eax <=Code:  d08455d9 <mod_firmware_load+70b9/????>     3:	83 c0 4c          	addl   $0x4c,%eax
Code:  d08455dc <mod_firmware_load+70bc/????>     6:	85 ff             	testl  %edi,%edi
Code:  d08455de <mod_firmware_load+70be/????>     8:	74 0f             	je      d08455ef <mod_firmware_load+70cf/????>
Code:  d08455e0 <mod_firmware_load+70c0/????>     a:	85 c0             	testl  %eax,%eax
Code:  d08455e2 <mod_firmware_load+70c2/????>     c:	74 0b             	je      d08455ef <mod_firmware_load+70cf/????>
Code:  d08455e4 <mod_firmware_load+70c4/????>     e:	57                	pushl  %edi
Code:  d08455e5 <mod_firmware_load+70c5/????>     f:	50                	pushl  %eax
Code:  d08455e6 <mod_firmware_load+70c6/????>    10:	56                	pushl  %esi
Code:  d08455e7 <mod_firmware_load+70c7/????>    11:	e8 ec 83 00 00    	call    d084d9d8 <END_OF_CODE+f4b8/????>


4 warnings issued.  Results may not be reliable.

Sincerly,
Michael

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~1999-08-15 19:40 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
1999-08-15 19:40 emu10k1 moudle oops frodo1

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox