环境Vxworks 5.5.1
在相同的地方,如果使用printf可以正确打印,但是使用vprintf就会报如下错误:
CPU: Motorola MPC82xx ADS - HIP7
Runtime Name: VxWorks
Runtime Version: 5.5.1
BSP version: 1.1/41
Created: Jan 23 2008, 00:35:46
WDB Comm Type: WDB_COMM_SERIAL
WDB: Agent configuration failed.
vprintf start....@@@@@@@@@@@
machine check
Exception next instruction address: 0x00758b1c
Machine Status Register: 0x0004b030
Condition Register: 0x44000044
Task: 0x7fffdf8 "tRootTask"
源代码语句:vprintf("vprintf start....@@@@@@@@@@@ %d\n",159);
http://topic.eeworld.net/t/20050815/21/4210526.html
经过定位,发现和vprintf的参数有关系。
如果直接打字符串是没有问题的,比如vprintf("vprintf start....@@@@@@@@@@@ \n");
但是如果后面跟参数就会报错,比如vprintf("vprintf start....@@@@@@@@@@@ %d\n",159);
我用的是Tornado 2.2.1,据说不支持va_list数据结构和va_arg va_start va_end这几个函数。但是我从rtnIndex文档上看到是有这几个函数的。期待高手解答。
回一句废话:
如果系统不支持va_list数据结构和va_arg va_start va_end
vprintf就不可能支持可变参数。
你可以自己写个函数试试系统是否支持它们。
参考http://msdn2.microsoft.com/en-us/library/kb57fad8(VS.71).aspx