Commit | Line | Data |
---|---|---|
06c87bef FF |
1 | if $tracelevel then { |
2 | strace $tracelevel | |
3 | } | |
4 | ||
5 | set prms_id 0 | |
6 | set bug_id 0 | |
7 | ||
8 | set binfile $objdir/$subdir/langs | |
9 | ||
10 | if ![file exists $binfile] then { | |
11 | perror "$binfile does not exist." | |
12 | return 0 | |
13 | } | |
14 | ||
15 | gdb_exit | |
16 | gdb_start | |
17 | gdb_reinitialize_dir $srcdir/$subdir | |
18 | gdb_load $binfile | |
19 | ||
20 | gdb_test "b langs0" {Function "langs0" not defined\.} \ | |
21 | "break on nonexistent function in langs.exp" | |
22 | ||
23 | if [runto csub] then { | |
24 | gdb_test "show language" "currently c\".*" \ | |
25 | "show language at csub in langs.exp" | |
26 | # On some machines, foo doesn't get demangled because the N_SOL for | |
27 | # langs2.cxx is seen only after the function stab for foo. So | |
28 | # the following regexps are kludged to accept foo__Fi as well as foo, | |
29 | # even though only the latter is correct. I haven't tried to xfail it | |
30 | # because it depends on details of the compiler. | |
31 | gdb_test "bt" "#0.*csub.*#1.*(foo|foo__Fi) \\(.*#2.*cppsub_ .*#3.*fsub.*#4.*langs0__2do \\(.*#5 \[0-9a-fx\]* in main.*" "backtrace in langs.exp" | |
32 | ||
33 | setup_xfail "i*86-*-sysv4*" | |
34 | gdb_test "up" ".* in (foo|foo__Fi) .* at langs2\\.cxx.*return csub \\(.*" \ | |
35 | "up to foo in langs.exp" | |
36 | setup_xfail "i*86-*-sysv4*" | |
37 | gdb_test "show language" "currently c\\+\\+.*" \ | |
38 | "show language at foo in langs.exp" | |
39 | ||
40 | setup_xfail "i*86-*-sysv4*" | |
41 | gdb_test "up" ".* in cppsub_ .* at langs2\\.cxx.*return foo \\(.*" \ | |
42 | "up to cppsub_ in langs.exp" | |
43 | setup_xfail "i*86-*-sysv4*" | |
44 | gdb_test "show language" "currently c\\+\\+.*" \ | |
45 | "show language at cppsub_ in langs.exp" | |
46 | ||
47 | setup_xfail "i*86-*-sysv4*" | |
48 | gdb_test "up" ".* in fsub.* at langs1\\.f.*return \\(cppsub .*" \ | |
49 | "up to fsub in langs.exp" | |
50 | setup_xfail "i*86-*-sysv4*" | |
51 | gdb_test "show language" "currently fortran.*" \ | |
52 | "show language at fsub in langs.exp" | |
53 | ||
54 | gdb_test "up" ".* in langs0__2do .* at .*langs0\\.c.*return fsub.*" \ | |
55 | "up to langs0__2do in langs.exp" | |
56 | gdb_test "show language" "currently c\".*" \ | |
57 | "show language at langs0__2do in langs.exp" | |
58 | ||
59 | gdb_test "up" ".* in main .* at .*langs0\\.c.*if \\(langs0__2do \\(.*" \ | |
60 | "up to main in langs.exp" | |
61 | gdb_test "show language" "currently c\".*" \ | |
62 | "show language at main in langs.exp" | |
63 | ||
64 | gdb_test "cont" "Program exited normally\\." \ | |
65 | "continue to exit in langs.exp" | |
66 | } | |
67 | ||
68 | return 0 |