meiyxq 发表于 2013-12-09 01:11

centos6.5 环境下在线程中使用函数指针的问题?

#00x000000361778fee8 in main_arena () from /lib64/libc.so.6
#10x000000000040350f in ReadThread (args=<value optimized out>) at main.c:1490
#20x00007ffff7bc29d1 in start_thread () from /lib64/libpthread.so.0
#30x00000036174e8b6d in clone () from /lib64/libc.so.6

ReadThread是新开起的一个线程,在此线程中用函数指针的方式运行一个函数,在centos6.4中程序运行正常,但是升级到6.5后,就会出现上面的错误,最后错误的定位就在

用函数指针的方式运行一个函数上面,(pfunction)(0,nLen,pData);

跟踪后,程序没有进入到运行的函数内,应该是在 (pfunction)(0,nLen,pData); 此种调用存在问题。

高手看看呢!

heartless_cu 发表于 2013-12-09 10:02

什么错误?看不出来。把代码贴出来。

井蛙夏虫 发表于 2013-12-09 11:25

升级后程序重新编译了吗

meiyxq 发表于 2013-12-09 15:24

编译了!但是编译后还是如此!现在的问题,在centos6.4环境下不存在!.如果升级到centos6.5就会出现!...而且跟踪的话!程序没有运行到函数指针目标函数!

井蛙夏虫 发表于 2013-12-09 15:53

信息太少,看不出来。
6.4和6.5各是什么gcc版本?
函数指针是怎么初始化的?
函数指针指向的函数在什么位置?自己的代码、静态库还是动态库中?
编译有警告吗?是否加选项-Wall了?
程序是否挂了?如果挂了,是什么信号杀的?
页: [1]
查看完整版本: centos6.5 环境下在线程中使用函数指针的问题?