请教高手printf和vprintf的问题

stycx   2008-1-23 00:48 楼主
环境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);

回复评论 (4)

http://topic.eeworld.net/t/20050815/21/4210526.html
点赞  2008-1-23 09:15
经过定位,发现和vprintf的参数有关系。
如果直接打字符串是没有问题的,比如vprintf("vprintf   start....@@@@@@@@@@@ \n");

但是如果后面跟参数就会报错,比如vprintf("vprintf   start....@@@@@@@@@@@ %d\n",159);
我用的是Tornado 2.2.1,据说不支持va_list数据结构和va_arg va_start va_end这几个函数。但是我从rtnIndex文档上看到是有这几个函数的。期待高手解答。
点赞  2008-1-24 21:57
回一句废话:
如果系统不支持va_list数据结构和va_arg   va_start   va_end
vprintf就不可能支持可变参数。
点赞  2008-1-25 09:18
你可以自己写个函数试试系统是否支持它们。
参考http://msdn2.microsoft.com/en-us/library/kb57fad8(VS.71).aspx
点赞  2008-1-25 09:23
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复