aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.trace/unavailable.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/testsuite/gdb.trace/unavailable.cc')
-rw-r--r--gdb/testsuite/gdb.trace/unavailable.cc126
1 files changed, 126 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.trace/unavailable.cc b/gdb/testsuite/gdb.trace/unavailable.cc
index 36b7455..12b0b25 100644
--- a/gdb/testsuite/gdb.trace/unavailable.cc
+++ b/gdb/testsuite/gdb.trace/unavailable.cc
@@ -184,6 +184,128 @@ end () /* called after everything else */
{
}
+/* Test (not) collecting args. */
+
+int
+args_test_func (char argc,
+ int argi,
+ float argf,
+ double argd,
+ test_struct argstruct,
+ int argarray[4])
+{
+ int i;
+
+ i = (int) argc + argi + argf + argd + argstruct.memberi + argarray[1];
+
+ return i;
+}
+
+/* Test (not) collecting array args. */
+
+/* Test (not) collecting locals. */
+
+int
+local_test_func ()
+{
+ char locc = 11;
+ int loci = 12;
+ float locf = 13.3;
+ double locd = 14.4;
+ test_struct locst;
+ int locar[4];
+ int i;
+ struct localstruct {} locdefst;
+
+ locst.memberc = 15;
+ locst.memberi = 16;
+ locst.memberf = 17.7;
+ locst.memberd = 18.8;
+ locar[0] = 121;
+ locar[1] = 122;
+ locar[2] = 123;
+ locar[3] = 124;
+
+ i = /* set local_test_func tracepoint here */
+ (int) locc + loci + locf + locd + locst.memberi + locar[1];
+
+ return i;
+}
+
+/* Test collecting register locals. */
+
+int
+reglocal_test_func ()
+{
+ register char locc = 11;
+ register int loci = 12;
+ register float locf = 13.3;
+ register double locd = 14.4;
+ register test_struct locst;
+ register int locar[4];
+ int i;
+
+ locst.memberc = 15;
+ locst.memberi = 16;
+ locst.memberf = 17.7;
+ locst.memberd = 18.8;
+ locar[0] = 121;
+ locar[1] = 122;
+ locar[2] = 123;
+ locar[3] = 124;
+
+ i = /* set reglocal_test_func tracepoint here */
+ (int) locc + loci + locf + locd + locst.memberi + locar[1];
+
+ return i;
+}
+
+/* Test collecting static locals. */
+
+int
+statlocal_test_func ()
+{
+ static char locc;
+ static int loci;
+ static float locf;
+ static double locd;
+ static test_struct locst;
+ static int locar[4];
+ int i;
+
+ locc = 11;
+ loci = 12;
+ locf = 13.3;
+ locd = 14.4;
+ locst.memberc = 15;
+ locst.memberi = 16;
+ locst.memberf = 17.7;
+ locst.memberd = 18.8;
+ locar[0] = 121;
+ locar[1] = 122;
+ locar[2] = 123;
+ locar[3] = 124;
+
+ i = /* set statlocal_test_func tracepoint here */
+ (int) locc + loci + locf + locd + locst.memberi + locar[1];
+
+ /* Set static locals back to zero so collected values are clearly special. */
+ locc = 0;
+ loci = 0;
+ locf = 0;
+ locd = 0;
+ locst.memberc = 0;
+ locst.memberi = 0;
+ locst.memberf = 0;
+ locst.memberd = 0;
+ locar[0] = 0;
+ locar[1] = 0;
+ locar[2] = 0;
+ locar[3] = 0;
+
+ return i;
+}
+
int
globals_test_func ()
{
@@ -239,6 +361,10 @@ main (int argc, char **argv, char **envp)
/* Call test functions, so they can be traced and data collected. */
i = 0;
+ i += args_test_func (1, 2, 3.3, 4.4, mystruct, myarray);
+ i += local_test_func ();
+ i += reglocal_test_func ();
+ i += statlocal_test_func ();
i += globals_test_func ();
/* Set 'em back to zero, so that the collected values will be