- 论坛徽章:
- 0
|
调试程序出了些问题,请众兄弟有知道的指点一下,先谢过!
现使用机器信息如下:
服务器信息:HP-UX (主机名) B.11.11 U 9000/800
编译器信息:g++
Using built-in specs.
Target: hppa1.1-hp-hpux11.11
Thread model: posix
gcc version 4.0.3
编译器信息:proc
Pro*C/C++: Release 9.2.0.1.0 - Production on Wed Aug 8 10:08:13 2007
调试器信息:gdb
HP gdb 3.1 for PA-RISC 1.1 or 2.0 (narrow), HP-UX 11.00.
***************************************************************
程序是 C++ / Proc*C 混合的,也就是有些源代码文件是 .cpp的,有些是 .pc的,代码片段如下:
// file : main.cpp
......
Audit audit; // audit.cpp中的一个类
string m_sErrMsg;
char logPath[128];
int auditFlagConst = 0;
if (argc < 5) {
usage(argv);
}
memset(logPath, 0, sizeof(logPath));
if (_getIniString(CFG_FILE,"[AUDIT_LOGPATH]","LOG_PATH",logPath)<0)
{
setLogPath("./");
}
else
{
setLogPath(logPath);
}
if (_getIniNumber(CFG_FILE, "[AUDIT_ERRNUM_LIMIT]", "ERR_NUMM", &auditFlagConst) < 0)
{
auditFlagConst = 20;
}
vector<long> v_auditId;
DBAuditOP *m_pConnect; //db.pc文件中的一个类
m_pConnect = new DBAuditOP("AuditDB");
// 数据库连接
m_pConnect->connect();
......
******************************************************************
调试上述代码时,调试信息让我很费解,请知道的给讲解一下。调试信息如下:
(gdb) next
38 Audit audit;
(gdb) next
252 : _Alloc(__a), _M_p(__dat) { }
(gdb) next
43 if (argc < 5) {
(gdb) next
252 : _Alloc(__a), _M_p(__dat) { }
(gdb) next
41 int auditFlagConst = 0;
(gdb) next
43 if (argc < 5) {
(gdb) next
46 memset(logPath, 0, sizeof(logPath));
(gdb) next
47 if (_getIniString(CFG_FILE,"[AUDIT_LOGPATH]","LOG_PATH",logPath)<0)
(gdb) next
53 setLogPath(logPath);
(gdb) next
56 if (_getIniNumber(CFG_FILE, "[AUDIT_ERRNUM_LIMIT]", "ERR_NUMM", &auditFlagConst) < 0)
(gdb) next
58 auditFlagConst = 20;
(gdb) next
63 m_pConnect = new DBAuditOP("AuditDB");
(gdb) next
85 : _Alloc(__a), _M_start(0), _M_finish(0), _M_end_of_storage(0)
(gdb) next
63 m_pConnect = new DBAuditOP("AuditDB");
(gdb) next
85 : _Alloc(__a), _M_start(0), _M_finish(0), _M_end_of_storage(0)
(gdb) next
63 m_pConnect = new DBAuditOP("AuditDB");
(gdb) next
26 DBOP() : m_errorNo(0) {}
(gdb) next
63 m_pConnect = new DBAuditOP("AuditDB");
(gdb)
我想问:调试走的步骤似乎与程序代码语句逻辑不相符呀,这是怎么回事? |
|