diff options
author | Stan Shebs <shebs@codesourcery.com> | 1994-06-07 01:57:15 +0000 |
---|---|---|
committer | Stan Shebs <shebs@codesourcery.com> | 1994-06-07 01:57:15 +0000 |
commit | ef44eed173353ff002da6fe92680e40068cd081f (patch) | |
tree | beeeaecb50227b8c1fe964debaf3c8f45bc9ac9a /gdb/testsuite/gdb.base/break.c | |
parent | 33268150cbbcc90ec13f5603d566537cf4cd569e (diff) | |
download | fsf-binutils-gdb-ef44eed173353ff002da6fe92680e40068cd081f.zip fsf-binutils-gdb-ef44eed173353ff002da6fe92680e40068cd081f.tar.gz fsf-binutils-gdb-ef44eed173353ff002da6fe92680e40068cd081f.tar.bz2 |
Reorganized GDB tests - base
Diffstat (limited to 'gdb/testsuite/gdb.base/break.c')
-rw-r--r-- | gdb/testsuite/gdb.base/break.c | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.base/break.c b/gdb/testsuite/gdb.base/break.c new file mode 100644 index 0000000..2b36a52 --- /dev/null +++ b/gdb/testsuite/gdb.base/break.c @@ -0,0 +1,77 @@ +#ifdef vxworks +# include <vxWorks.h> +# include <stdioLib.h> + +/* VxWorks does not supply atoi. */ +static int +atoi (z) + char *z; +{ + int i = 0; + + while (*z >= '0' && *z <= '9') + i = i * 10 + (*z++ - '0'); + return i; +} + +/* I don't know of any way to pass an array to VxWorks. This function + can be called directly from gdb. */ + +vxmain (arg) +char *arg; +{ + char *argv[2]; + + argv[0] = ""; + argv[1] = arg; + main (2, argv, (char **) 0); +} + +#else /* ! vxworks */ +# include <stdio.h> +#endif /* ! vxworks */ + +/* + * The following functions do nothing useful. They are included simply + * as places to try setting breakpoints at. They are explicitly + * "one-line functions" to verify that this case works (some versions + * of gcc have or have had problems with this). + */ + +int marker1 () { return (0); } +int marker2 (a) int a; { return (1); } +void marker3 (a, b) char *a, *b; {} +void marker4 (d) long d; {} + +/* + * This simple classical example of recursion is useful for + * testing stack backtraces and such. + */ + +int +main (argc, argv, envp) +int argc; +char *argv[], **envp; +{ + if (argc != 2) { + fprintf (stderr, "usage: factorial <number>\n"); + return 1; + } else { + printf ("%d\n", factorial (atoi (argv[1]))); + } + marker1 (); + marker2 (43); + marker3 ("stack", "trace"); + marker4 (177601976L); + return 0; +} + +int factorial (value) +int value; +{ + if (value > 1) { + value *= factorial (value - 1); + } + return (value); +} + |