主要观点:[mod_blog](https://github.com/spc476/mod_blog)
存在一个内存损坏错误导致崩溃,仅在POST
时出现,开发服务器未崩溃是因为操作系统和glibc
版本的差异。使用[valgrind](https://valgrind.org/)
可帮助找到问题,通过添加代码捕获 CGI 程序运行的环境并将其写入文件,再用valgrind
调试,同时需处理一些特殊字符并创建输入流。
关键信息:
- 错误存在至少六年,上次使用网页界面是七年前。
- 为捕获环境添加代码
extern char *envriron; FILE *fp = fopen("/tmp/env.txt","w"); for (size_t i = 0 ; environ[i]!= NULL ; i++) fprintf(fp,"export %s\\n",environ[i]); fclose(fp);
。 - 以特定格式创建包含环境变量的文件并使用
valgrind
调试,如valgrind $HOME/source/boston/src/main <r.stdin
。
重要细节: - 程序在开发服务器和生产环境下表现不同。
- 需处理环境变量中的特殊字符,如星号和分号。
- 可通过特定格式的链接访问不同日期的页面,如
[https://boston.conman.org/2000/08/01](https://boston.conman.org/2000/08/01)
,且链接的颜色 shading 可表示距离远近。所有提及的品牌等名称都被视为受保护和商标的实体。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。