1.生成core dumped文件
ulimit -c unlimited
gdb -c core.10783 Gamex
2. Linux解决libstdc++的版本问题
strings /usr/lib64/libstdc++.so.6 | grep GLIBC
# 查找库文件
# find / -name libstdc++.so.6.0.21
# 如果libstdc++.so.6.0.21库文件已存在,则按照下面的步骤创建软链接即可
# 如果libstdc++.so.6.0.21库文件不存在,则需要按照下面的步骤编译新版本的GCC,然后再创建软链接
# 下载文件(117M)
# wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-5.2.0/gcc-5.2.0.tar.bz2
# 解压文件
# tar -xvf gcc-5.2.0.tar.bz2
# 进入解压目录
# cd gcc-5.2.0
# 下载编译gcc所需的依赖文件和库
# ./contrib/download_prerequisites
# 建立输出目录,用于存放编译时所有产生的中间文件
# mkdir gcc-temp
# 进入输出目录
# cd gcc-temp
# 执行configure配置
# ../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
# 编译gcc,指定编译使用的线程数为8,编译耗时较长,可能需要几个小时
# make -j8
# 这里为了避免影响系统的稳定性,暂时不执行"make install"和替换系统默认版本的gcc
# 进入输出目录
# cd gcc-temp
# 查找编译生成libstdc++.so库文件,下面查找到的libstdc++.so、libstdc++.so.6都只是软链接文件,libstdc++.so.6.0.21才是真正编译生成的库文件
# find . -name "libstdc++.so*"
./prev-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so
./prev-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
./prev-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.21
./stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so
./stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
./stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.21
./x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so
./x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
./x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.21
# 拷贝libstdc++.so.6.0.21库文件到lib64目录
# cp ./x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.21 /usr/lib64
# 进入lib64目录
# cd /usr/lib64
# 删除旧的链接文件
# rm -f libstdc++.so.6
# 创建新的链接文件
# ln -s libstdc++.so.6.0.21 libstdc++.so.6
# 查看最终的libstdc++.so库文件列表
# ls -al /usr/lib64/libstdc++.so.6*
lrwxrwxrwx. 1 root root 19 3月 12 10:08 /usr/lib64/libstdc++.so.6 -> libstdc++.so.6.0.21
-rwxr-xr-x. 1 root root 991616 10月 30 14:39 /usr/lib64/libstdc++.so.6.0.19
-rwxr-xr-x. 1 root root 11485880 3月 12 10:01 /usr/lib64/libstdc++.so.6.0.21
strings /usr/lib64/libstdc++.so.6 | grep GLIBC
3.重装protobuf
yum remove protobuf
./configure CXX=/usr/gcc-4.8.5/bin/g++ --prefix=/usr/local/protobuf
$./configure --prefix=/usr/local/protobuf $ sudo make -j8 $ sudo make check $ sudo make install
sudo vim /etc/profile
####### add protobuf lib path ######## #(动态库搜索路径) 程序加载运行期间查找动态链接库时指定除了系统默认路径之外的其他路径 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/protobuf/lib/ #(静态库搜索路径) 程序编译期间查找动态链接库时指定查找共享库的路径 export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/protobuf/lib/ #执行程序搜索路径 export PATH=$PATH:/usr/local/protobuf/bin/ #c程序头文件搜索路径 export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/protobuf/include/ #c++程序头文件搜索路径 export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/protobuf/include/ #pkg-config 路径 export PKG_CONFIG_PATH=/usr/local/protobuf/lib/pkgconfig/ ######################################
source /etc/profile
echo $LIBRARY_PATH
protoc --version
sudo ldconfig
4.文件编辑
find -name "*database/Databases.cpp*"
vim ./engine/database/Databases.cpp
linux下重命名文件或文件夹的命令mv既可以重命名,又可以移动文件或文件夹.
例子:将目录A重命名为B
mv A B
例子:将/a目录移动到/b下,并重命名为c
mv /a /b/c