编译警告详细位置清单
概述
本文档列出所有编译警告的具体文件位置和行号,便于快速定位和修复。
警告总数: 6686
唯一位置: 约60个关键位置(部分位置因多次包含重复出现)
P0 级别警告位置(关键)
1. Wsizeof-pointer-memaccess (185个)
Command.h:8092
- 出现次数: 180
- 文件:
../base/Command.h - 行号: 8092
- 问题:
strncpy(dest, src, sizeof(src))应改为strncpy(dest, src, sizeof(dest))
zDatabase.h:598
- 出现次数: 4
- 文件:
zDatabase.h - 行号: 598
- 问题: 同上
2. Wsequence-point (411个)
zMisc.h:364
- 出现次数: 137
- 文件:
../base/zMisc.h - 行号: 364
- 问题:
queue[queueRead++] = t- 在同一表达式中多次修改变量
zMisc.h:378
- 出现次数: 137
- 文件:
../base/zMisc.h - 行号: 378
- 问题:
queue[queueWrite++] = t- 在同一表达式中多次修改变量
zMisc.h:414
- 出现次数: 137
- 文件:
../base/zMisc.h - 行号: 414
- 问题: 同上
3. Wclass-memaccess (5711个)
zDatabase.h (4224次)
高频率警告行(每行约88次):
| 行号 | 结构体类型 |
|---|---|
| 256 | zObjectB |
| 679 | zSetObjectB |
| 757 | zFiveSetB |
| 835 | zHolyObjectB |
| 924 | zUpgradeObjectB |
| 997 | zUpgradeObject2B |
| 1069 | zUpgradePurpleB |
| 1141 | zAmuletObjectB |
| 1213 | zUdouhunObjectB |
| 1285 | zUbutianObjectB |
| 1357 | zUdtroughObjectB |
| 1429 | zUdrastarObjectB |
| 1500 | zUlongxingchongzhuObjectB |
| 1572 | zMedaltObjectB |
| 1644 | zUhbqlObjectB |
| 1716 | zUxuanhuaObjectB |
| 1788 | zUshenqiObjectB |
| 1860 | zUYSBSObjectB |
| 1932 | zUYUANSHENObjectB |
| 2004 | zUxytsObjectB |
| 2076 | zUzijinlplvObjectB |
| 2149 | zUwangObjectB |
| 2222 | zUfuyangObjectB |
| 2294 | zUhuiyongObjectB |
| 2366 | zUkuiObjectB |
| 2437 | zUleijianObjectB |
| 2509 | zUlongbowObjectB |
| 2581 | zUshieldObjectB |
| 2653 | zUxianObjectB |
| 2725 | zUyishouObjectB |
| 2797 | zUzhiqinObjectB |
| 2867 | zUzhuaObjectB |
| 2937 | zUzhuObjectB |
| 3007 | zUzhuhObjectB |
| 3077 | zUjianObjectB |
| 3147 | zUqiaoObjectB |
| 3217 | zUbifangObjectB |
| 3289 | zUzhenObjectB |
| 3361 | zUyaodaiObjectB |
| 3433 | zUhatObjectB |
| 3505 | zUwaistObjectB |
| 3582 | zUxieObjectB |
| 3654 | zUxianzuoObjectB |
| 3731 | zUxianyouObjectB |
| 3808 | zUkuiObjectB (重复?) |
| 3880 | zUxianObjectB (重复?) |
| 3952 | zUleijianObjectB (重复?) |
| 4024 | zUlongbowObjectB (重复?) |
其他行 (每行约5-30次):
- 行 598: 约4次
- 行 4231-4500: 多个低频位置
Command.h (540次)
| 行号 | 结构体类型 | 次数 |
|---|---|---|
| 10647 | t_Object | 180 |
| 10821 | t_Object | 180 |
| 8092 | (strncpy问题) | 180 |
SessionCommand.h (780次)
| 行号 | 结构体类型 | 次数 |
|---|---|---|
| 1111 | SessionObject | 130 |
| 1128 | SessionObject | 130 |
| 1172 | SessionObject | 130 |
| 1191 | SessionObject | 130 |
| 1571 | SessionObject | 130 |
| 1698 | SessionObject | 130 |
| 1861 | (其他类型) | 30 |
RecordCommand.h (102次)
| 行号 | 结构体类型 | 次数 |
|---|---|---|
| 242 | stSendMail | 102 |
SessionServer.h (29次)
| 行号 | 类型 | 次数 |
|---|---|---|
| 193 | (未指定) | 29 |
zObject.cpp (38次)
| 行号 | 类型 | 次数 |
|---|---|---|
| (多个行) | (未指定) | 38 |
CartoonPetService.h (5次)
| 行号 | 类型 | 次数 |
|---|---|---|
| 19 | (未指定) | 5 |
4. Wformat-truncation/overflow/stringop (34个)
RebuildObject.h:1394
- 出现次数: 3
- 文件:
RebuildObject.h - 行号: 1394
- 问题: 格式化字符串可能截断
其他格式化警告:
- Chat.cpp: 多处格式化字符串问题
- Property.cpp: 字符串操作警告
- Trade.cpp: 字符串操作警告
- MailService.cpp: 格式化字符串警告
- AuctionService.cpp: 格式化字符串警告
- StockConsign.cpp: 字符串操作警告
5. Warray-bounds (1个)
(未指定位置)
- 出现次数: 1
- 问题: 数组访问超出边界
P1 级别警告位置(高)
1. Wcpp (241个)
backward_warning.h:32
- 出现次数: 241
- 文件:
/usr/include/c++/8/backward/backward_warning.h - 行号: 32
- 问题: 使用已弃用的
ext/hash_map头文件 - 影响: 通过
zProperties.h:18间接包含
2. Wterminate (23个)
call_function.hpp:96
- 出现次数: 23
- 文件:
../script/luabind/luabind/detail/call_function.hpp - 行号: 96
- 问题: 在可能抛出异常的上下文中调用 terminate
P2 级别警告位置(中)
1. Wparentheses (42个)
分布文件:
- SceneUser.cpp: 多处运算符优先级问题
- SessionTask.cpp: 运算符优先级问题
- ServerTask.cpp: 运算符优先级问题
- SessionClient.cpp: 运算符优先级问题
- UserServer.cpp: 运算符优先级问题
- SceneNpc.cpp: 运算符优先级问题
2. Wlogical-not-parentheses (7个)
分布文件: 多个场景和服务文件
3. Wbool-compare (1个)
位置: 未指定,需进一步查找
P3 级别警告位置(低)
1. Wunused-but-set-variable (27个)
分布:
- 多个 .cpp 文件中的局部变量
- 变量名包括: toPos, tmpPos, state, retUnion, ret, retSept, retSchool, retcode, pos, notify, _nKind, minutes, hpAfter, hours, days, damageTypeName, coefficient, cmd, basebmnext, attackRating, AddPoint
2. Wunused-local-typedefs (1个)
位置: 未指定
快速修复脚本
查找特定类型的警告
# 查找所有 Wsizeof-pointer-memaccess 警告
grep "Wsizeof-pointer-memaccess" /workspace/build/build-20260112-185946.log
# 查找所有 Wsequence-point 警告
grep "Wsequence-point" /workspace/build/build-20260112-185946.log
# 查找所有 Wclass-memaccess 警告
grep "Wclass-memaccess" /workspace/build/build-20260112-185946.log
# 按文件分组显示警告
grep "warning:" /workspace/build/build-20260112-185946.log | awk -F: '{print $1}' | sort | uniq -c | sort -rn
生成特定文件的警告列表
# 生成 zDatabase.h 的所有警告
grep "zDatabase.h" /workspace/build/build-20260112-185946.log | grep "warning:" > /tmp/zDatabase_h_warnings.txt
# 生成 Command.h 的所有警告
grep "Command.h" /workspace/build/build-20260112-185946.log | grep "warning:" > /tmp/Command_h_warnings.txt
# 生成 zMisc.h 的所有警告
grep "zMisc.h" /workspace/build/build-20260112-185946.log | grep "warning:" > /tmp/zMisc_h_warnings.txt
修复优先级矩阵
| 文件 | 警告数 | P0 | P1 | P2 | P3 | 优先级 |
|---|---|---|---|---|---|---|
| zDatabase.h | 4224 | ✅ | - | - | - | 🔴 最高 |
| Command.h | 540 | ✅ | - | - | - | 🔴 最高 |
| SessionCommand.h | 780 | ✅ | - | - | - | 🔴 最高 |
| zMisc.h | 411 | ✅ | - | - | - | 🔴 最高 |
| RecordCommand.h | 102 | ✅ | - | - | - | 🔴 高 |
| zObject.cpp | 38 | ✅ | - | - | - | 🔴 高 |
| SessionServer.h | 29 | ✅ | - | - | - | 🔴 高 |
| SceneUser.cpp | 29 | - | - | ✅ | - | 🟠 中 |
| RebuildObject.cpp | 15 | - | - | - | - | 🟠 中 |
| Chat.cpp | 16 | - | - | - | - | 🟠 中 |
| Property.cpp | 12 | - | - | - | - | 🟠 中 |
| Trade.cpp | 8 | - | - | - | - | 🟠 中 |
| StockConsign.cpp | 8 | - | - | - | - | 🟠 中 |
| MailService.cpp | 7 | - | - | - | - | 🟠 中 |
| SessionClient.cpp | 6 | - | - | ✅ | - | 🟠 中 |
| AuctionService.cpp | 6 | - | - | - | - | 🟠 中 |
| UserServer.cpp | 5 | - | - | ✅ | - | 🟠 中 |
| SceneNpc.cpp | 5 | - | - | ✅ | - | 🟠 中 |
| CartoonPetService.h | 5 | ✅ | - | - | - | 🔴 高 |
| SessionTask.cpp | 9 | - | - | ✅ | - | 🟠 中 |
| ServerTask.cpp | 4 | - | - | ✅ | - | 🟠 中 |
| CountryBiaoCheManager.cpp | 4 | - | - | - | - | 🟢 低 |
| TianXiaDiYiManager.cpp | 4 | - | - | - | - | 🟢 低 |
| CountryInfo.cpp | 3 | - | - | - | - | 🟢 低 |
| SessionChat.cpp | 2 | - | - | - | - | 🟢 低 |
| RebuildObject.h | 9 | ✅ | - | - | - | 🔴 高 |
下一步行动
-
立即修复 P0 警告:
- zDatabase.h:4224个 - 批量替换 memset 为值初始化
- Command.h:540个 - 修复 strncpy 和 memset 问题
- SessionCommand.h:780个 - 批量替换 memset 为值初始化
- zMisc.h:411个 - 重构 MsgQueue 避免序列点问题
-
第二阶段修复 P1 警告:
- 替换 hash_map 为 unordered_map
- 修复 terminate 警告
-
持续改进 P2/P3 警告:
- 添加运算符优先级括号
- 清理未使用变量
文档版本: v1.0
创建日期: 2026-01-12
维护者: Zebra 项目组