在C开发中,遇到复杂点的程序调试时比较复杂:
开发时注意事项:1)文件IO打开后要有关闭,特别是出现错误时,比如socket的connect链接异常时需要需要close(sockfd),否则文件端口会被耗尽。---》通过cat /proc/pid/fd可以看到此时程序使用了几个文件符,如果不断变多,说明没有释放。
2)使用多线程时,如果线程的结束状态不需要,则创建线程时需要设置为PTHREAD_CREATE_DETACHED.这样线程结束时,不会占用线程资源。
3)使用calloc等函数时,需要有free对于释放。
--》可以使用valgrind 或者memwatch gcc -DMEMWATCH -DMW_STDIO test.c memwatch.c -o test 来查看是否有内存泄漏情况。
调试工具:gdb 交叉调试方法 见其他文章。
阅读(562) | 评论(0) | 转发(0) |