⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 completion.exp

📁 gdb-6.8 Linux下的调试程序 最新版本
💻 EXP
📖 第 1 页 / 共 2 页
字号:
                      -re ".*$gdb_prompt $" { fail "complete 'p \"break1'"}                      timeout           {fail "(timeout) complete 'p \"break1'"}                     }            }	-re "^p \"break1\\.c\"$"\	    {	send_gdb "\n"		gdb_expect {		    -re ".*$gdb_prompt $" { pass "complete 'p \"break1'"}		    timeout           {fail "(timeout) complete 'p \"break1'"}		}	    }	-re "^p \"break1.*$"	    {	send_gdb "\n"		gdb_expect {		    -re ".*$gdb_prompt $" { fail "complete 'p \"break1'"}		    timeout           {fail "(timeout) complete 'p \"break1'"}		}	    }        -re ".*$gdb_prompt $"       { fail "complete 'p \"break1'" }        timeout         { fail "(timeout) complete 'p \"break1'" }        }setup_xfail "*-*-*"send_gdb "p \"break1.\t"sleep 1gdb_expect  {        -re "^p \"break1\\.\\\x07$"\            { send_gdb "\n"              gdb_expect {                      -re ".*$gdb_prompt $" { fail "complete 'p \"break1.'"}                      timeout           {fail "(timeout) complete 'p \"break1.'"}                     }            }	-re "^p \"break1\\.c\"$"\	    {	send_gdb "\n"		gdb_expect {		    -re ".*$gdb_prompt $" { pass "complete 'p \"break1.'"}		    timeout           {fail "(timeout) complete 'p \"break1.'"}		}	    }	-re "^p \"break1\\..*$"	    {	send_gdb "\n"		gdb_expect {		    -re ".*$gdb_prompt $" { fail "complete 'p \"break1.'"}		    timeout           {fail "(timeout) complete 'p \"break1.'"}		}	    }        -re ".*$gdb_prompt $"       { fail "complete 'p \"break1.'" }        timeout         { fail "(timeout) complete 'p \"break1.'" }        }send_gdb "p 'a\t"sleep 1gdb_expect  {        -re "^p 'a\\\x07$"\            { send_gdb "\n"              gdb_expect {                      -re "(Invalid character constant\\.|Unmatched single quote\\.).*$gdb_prompt $"\                                        { pass "complete 'p \'a'"}                      -re ".*$gdb_prompt $" { fail "complete 'p \'a'"}                      timeout           {fail "(timeout) complete 'p \'a'"}                     }            }        -re ".*$gdb_prompt $"       { fail "complete 'p \'a'" }        timeout         { fail "(timeout) complete 'p \'a'" }        }send_gdb "p 'a\t"sleep 1gdb_expect {    -re "^p 'a\\\x07$" {	send_gdb "\t"	gdb_expect {	    -re ".*argv.*$gdb_prompt p .a$" {		send_gdb "\n"		gdb_expect {		    -re "(Invalid character constant\\.|Unmatched single quote\\.).*$gdb_prompt $" {			pass "complete (2) 'p \'a'"		    }		    -re ".*$gdb_prompt $" { fail "complete (2) 'p \'a'" }		    timeout { fail "(timeout) complete (2) 'p \'a'" }		}	    }	    -re "(There are $decimal possibilities\\.  Do you really\r\nwish to see them all.|Display all $decimal possibilities.) \\(y or n\\)$" {		send_gdb "n"		gdb_expect {		    -re "\\(gdb\\) p 'a$" {			send_gdb "\n"			gdb_expect {			    -re "(Invalid character constant\\.|Unmatched single quote\\.).*$gdb_prompt $" {				pass "complete (2) 'p \'a'"			    }			    -re ".*$gdb_prompt $" { 				fail "complete (2) 'p \'a'"			    }			    timeout { fail "(timeout) complete (2) 'p \'a'" }			}		    }		    -re ".*$gdb_prompt $" { fail "complete (2) 'p \'a'" }		    timeout { fail "(timeout) complete (2) 'p \'a'" }		}	    }	    -re ".*$gdb_prompt $" { fail "complete (2) 'p \'a'" }	    timeout { fail "(timeout) complete (2) 'p \'a'" }	}    }    -re ".*$gdb_prompt $" { fail "complete (2) 'p \'a'" }    timeout { fail "(timeout) complete (2) 'p \'a'" }}# These tests used to try completing the shorter "p b-a".# Unfortunately, on some systems, there are .o files in system# libraries which declare static variables named `b'.  Of course,# those variables aren't really in scope, as far as the compiler is# concerned.  But GDB deliberately tries to be more liberal: if you# enter an identifier that doesn't have any binding in scope, GDB will# search all the program's compilation units for a static variable of# the given name.## This behavior can help avoid a lot of pedantry, so it's usually a# good thing.  But in this test case, it causes GDB to print the value# of some random variable, instead of giving us the "No symbol..."# error we were expecting.## For example, on S/390 linux, the file s_atan.c in libm.a declares a# `b', which is a structure containing an int and a float, so GDB says# ``Argument to arithmetic operation not a number or boolean'' instead# of ``No symbol ...''.## So, I'm hoping that there is no system with a static library variable named# `no_var_by_this_name'.send_gdb "p no_var_named_this-a\t"sleep 1gdb_expect {    -re "^p no_var_named_this-a\\\x07$" {        send_gdb "\n"        gdb_expect {            -re "No symbol \"no_var_named_this\" in current context\\..*$gdb_prompt $" {                pass "complete 'p no_var_named_this-a'"            }            -re ".*$gdb_prompt $" {                fail "complete 'p no_var_named_this-a'"            }            timeout {                fail "(timeout) complete 'p no_var_named_this-a'"            }        }    }    -re ".*$gdb_prompt $" {        fail "complete 'p no_var_named_this-a'"    }    timeout {        fail "(timeout) complete 'p no_var_named_this-a'"    }}send_gdb "p no_var_named_this-a\t"sleep 1gdb_expect {    -re "^p no_var_named_this-a\\\x07$" {	send_gdb "\t"	gdb_expect {	    -re ".*argv.*$gdb_prompt p no_var_named_this-a$" {		send_gdb "\n"		gdb_expect {		    -re "No symbol \"no_var_named_this\" in current context\\..*$gdb_prompt $" {			pass "complete (2) 'p no_var_named_this-a'"		    }		    -re ".*$gdb_prompt $" {                        fail "complete (2) 'p no_var_named_this-a'"                    }		    timeout {                        fail "(timeout) complete (2) 'p no_var_named_this-a'"                    }		}	    }	    -re "(There are $decimal possibilities\\.  Do you really\r\nwish to see them all.|Display all $decimal possibilities.) \\(y or n\\)$" {		send_gdb "n"		gdb_expect {		    -re "\\(gdb\\) p no_var_named_this-a$" {			send_gdb "\n"			gdb_expect {			    -re "No symbol \"no_var_named_this\" in current context\\..*$gdb_prompt $" {				pass "complete (2) 'p no_var_named_this-a'"			    }			    -re ".*$gdb_prompt $" {				fail "complete (2) 'p no_var_named_this-a'"			    }			    timeout {                                fail "(timeout) complete (2) 'p no_var_named_this-a'"                            }			}		    }		    -re ".*$gdb_prompt $" {                        fail "complete (2) 'p no_var_named_this-a'"                    }		    timeout {                        fail "(timeout) complete (2) 'p no_var_named_this-a'"                    }		}	    }	    -re ".*$gdb_prompt $" {                fail "complete (2) 'p no_var_named_this-a'"            }	    timeout { fail "(timeout) complete (2) 'p no_var_named_this-a'" }        }    }    -re ".*$gdb_prompt $" { fail "complete (2) 'p no_var_named_this-a'" }    timeout { fail "(timeout) complete (2) 'p no_var_named_this-a'" }}send_gdb "p no_var_named_this-\t"sleep 1gdb_expect  {    -re "^p no_var_named_this-\\\x07$" {	send_gdb "\t"	gdb_expect {	    -re "(There are $decimal possibilities\\.  Do you really\r\nwish to see them all.|Display all $decimal possibilities.) \\(y or n\\)$" {		send_gdb "n"		gdb_expect {		    -re "\\(gdb\\) p no_var_named_this-$" {			send_gdb "\n"			gdb_expect {			    -re "No symbol \"no_var_named_this\" in current context\\..*$gdb_prompt $" {				pass "complete (2) 'p no_var_named_this-'"			    }			    -re ".*$gdb_prompt $" {				fail "complete (2) 'p no_var_named_this-'"			    }			    timeout {                                fail "(timeout) complete (2) 'p no_var_named_this-'"                            }			}		    }		    -re ".*$gdb_prompt $" {                        fail "complete (2) 'p no_var_named_this-'"                    }		    timeout {                        fail "(timeout) complete (2) 'p no_var_named_this-'"                    }		}	    }	    -re ".*$gdb_prompt $" {                fail "complete (2) 'p no_var_named_this-'"            }	    timeout { fail "(timeout) complete (2) 'p no_var_named_this-'" }	}    }    -re ".*$gdb_prompt $" { fail "complete (2) 'p no_var_named_this-'" }    timeout { fail "(timeout) complete (2) 'p no_var_named_this-'" }}# The following tests used to simply try to complete `${objdir}/file',# and so on.  The problem is that ${objdir} can be very long; the# completed filename may be more than eighty characters wide.  When# this happens, readline tries to manage things, producing output that# may make sense on the screen, but is rather hard for our script to# recognize.## In the case that motivated this change, the (gdb) prompt occupied# the leftmost six columns, and `${objdir}/' was seventy-four# characters long --- eighty in all.  After printing the slash,# readline emitted a space, a carriage return, and then `Makefile'# (the tab character being received as input after `Make'.## Basically, you have to let readline do whatever it's going to do to# make the screen look right.  If it happens to use a different# strategy on Tuesdays to get the cursor in the right place, that's# not something the testsuite should care about.## So, we avoid long lines.  We `cd' to ${objdir} first, and then do# the completion relative to the current directory.# ${srcdir} may be a relative path.  We want to make sure we end up# in the right directory - so make sure we know where it is.set mydir [pwd]cd ${srcdir}set fullsrcdir [pwd]cd ${mydir}# If the directory name contains a '+' we must escape it, adding a backslash.# If not, the test below will fail because it will interpret the '+' as a # regexp operator. We use string_to_regexp for this purpose.gdb_test "cd ${fullsrcdir}" \         "Working directory [string_to_regexp ${fullsrcdir}].*" \         "cd to \${srcdir}"send_gdb "complete file ./gdb.base/compl\n"sleep 1gdb_expect  {    -re "file ./gdb.base/completion\\.exp.*$gdb_prompt $"	{ pass "complete-command 'file ./gdb.base/compl'"}    -re ".*$gdb_prompt $"       { fail "complete-command 'file ./gdb.base/compl'" }    timeout         { fail "(timeout) complete-command 'file ./gdb.base/compl'" }}send_gdb "file ./gdb.base/complet\t"sleep 1gdb_expect  {        -re "^file ./gdb.base/completion\\.exp $"\            { send_gdb "\n"	      # Ignore the exact error message.	      gdb_test_multiple "" "complete 'file ./gdb.base/complet'" {		  -re "\r\nA program is being debugged already\\.\[\r\n\]+Are you sure you want to change the file\\? \\(y or n\\) $" {		      send_gdb "n\n"		      exp_continue		  }		  -re ".*$gdb_prompt $" { pass "complete 'file ./gdb.base/complet'" }	      }            }        -re ".*$gdb_prompt $"       { fail "complete 'file ./gdb.base/complet'" }        timeout         { fail "(timeout) complete 'file ./gdb.base/complet'" }        }send_gdb "info func marke\t"sleep 1gdb_expect  {        -re "^info func marke.*r$"\            {	      send_gdb "\t\t"              sleep 3              gdb_expect {                      -re "marker1.*$gdb_prompt info func marker$"\                      { send_gdb "\n"                        gdb_expect {                                -re "All functions matching regular expression \"marker\":.*File.*break1.c:\r\nint marker1\\((void|)\\);\r\nint marker2\\(int\\).*marker3\\(char.*char.*\\).*marker4\\(long int\\);.*$gdb_prompt $"\                                                  { pass "complete 'info func marke'"}                                -re ".*$gdb_prompt $" { fail "complete 'info func marke'"}                                timeout           {fail "(timeout) complete 'info func marke'"}                               }                      }                      -re ".*$gdb_prompt $" { fail "complete 'info func marke'"}                      timeout           {fail "(timeout) complete 'info func marke'"}                     }            }        -re ".*$gdb_prompt $"       { fail "complete 'info func marke'" }        timeout         { fail "(timeout) complete 'info func marke'" }        }send_gdb "set follow-fork-mode \t\t"sleep 1gdb_expect  {        -re "child.*parent.*$gdb_prompt set follow-fork-mode $"\            { send_gdb "\n"              gdb_expect {                      -re "Requires an argument.*child.*parent.*$gdb_prompt $"\                                        { pass "complete 'set follow-fork-mode'"}                      -re "Ambiguous item \"\"\\..*$gdb_prompt $"\                                        { pass "complete 'set follow-fork-mode'"}                      -re ".*$gdb_prompt $" { fail "complete 'set follow-fork-mode'"}                      timeout           {fail "(timeout) complete 'set follow-fork-mode'"}                     }            }        -re ".*$gdb_prompt $"       { fail "complete 'set follow-fork-mode'" }        timeout         { fail "(timeout) complete 'set follow-fork-mode'" }        }# Restore globals modified in this test...if [info exists old_inputrc] {    set env(INPUTRC) $old_inputrc} else {    unset env(INPUTRC)}set timeout $oldtimeout1return 0

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -