vxworks shell 相关问题...
时间:2010-08-18 来源:dreamview008
shell的printf和函数执行
原文链接:http://topic.csdn.net/u/20080312/22/37b408d1-123b-4fed-8776-ade8adecc14d.html
Q1 . 我编译的VXWORKS内核是包含了target shell组件和一个host与target符号表同步的组件的,在TORNADO编好程序后download到虚拟机中,为什么在tornado的命令 行下能运行程序中的函数,而在虚拟机中的vxworks命令行下运行同样的函数却提示undefined symbol?
A1 : Tornado操作界面->Tools->Target server->Configure...
此处配置target server时,Target server property对应的下拉框中
Core file and symbol system选项下
有个Synchronize Target/Host Symbol Table需要勾上
不推荐同步主机和目标机的符号表,貌似有问题
Q2 . 在tornado的命令行下执行某个函数时,为什么有的包含printf语句的函数会打印在tornado的命令行下,而有的函数会打印在虚拟机中的vxworks中?我看不出它们的区别在哪.让printf打印在哪里靠什么控制?
A2 : 如果没有重定向的话,printf都是打印到target shell下,即你说的虚拟机上的
printf语句都是打印到标准输出,看你定向到哪个位置就打印到哪个位置了
A2.1 : host shell下执行某一个函数的时候,WDB会自动生成一个新的任务来运行,这个任务的IO将被重定向到host shell上。这样,你在host shell下敲某一个函数的时候,printf的内容就直接打到host shell上了。
假设这个函数里有生成新的任务的代码,这样里面生成的任务还是独立的,printf默认就打到标准IO,即界面上去了。
如果在host shell下,你调用的是-> sp 函数, 这样你会发现全都打标准IO上去了。
A2.2 :
输出到目标 ->?shConfig SH_GET_TASK_IO off