Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ gdb,为什么;“下一步”;每个源代码行显示两次?_C++_C_Gdb - Fatal编程技术网

C++ gdb,为什么;“下一步”;每个源代码行显示两次?

C++ gdb,为什么;“下一步”;每个源代码行显示两次?,c++,c,gdb,C++,C,Gdb,各位,当在gdb中使用“next”指令时,我发现每行源代码显示两次------我很确定,这些代码不在任何循环中。这就是现象: (gdb) frame #0 ap_get_client_block (r=0x8560d48, buffer=0xb68501b7 "<?xml version=\"1.0\" encoding=\"utf-8\"?><Root><OperCode>SMS101</OperCode><AppId>S

各位,当在gdb中使用“next”指令时,我发现每行源代码显示两次------我很确定,这些代码不在任何循环中。这就是现象:

(gdb) frame
#0  ap_get_client_block (r=0x8560d48, 
    buffer=0xb68501b7 "<?xml version=\"1.0\" encoding=\"utf-8\"?><Root><OperCode>SMS101</OperCode><AppId>SMSMsgFilterReq</AppId><Req><UserMobile>13925237429</UserMobile><SendMsg>abc圲34¨圲23a露07\214圲21¢<237朲11?东215圲10°<214朲27¥応227露07\214正常,hao"..., bufsiz=81920) at http_filters.c:1540
1540        if (r->remaining < 0 || (!r->read_chunked && r->remaining == 0)) {
(gdb) n
1544        bb = apr_brigade_create(r->pool, r->connection->bucket_alloc);
(gdb) 
1545        if (bb == NULL) {
(gdb) 
1544        bb = apr_brigade_create(r->pool, r->connection->bucket_alloc);
(gdb) 
1545        if (bb == NULL) {
(gdb)帧
#0 ap获取客户端块(r=0x8560d48,
缓冲区=0xb68501b7“SMS101SSMSGSGFILTERREQ13925237429ABC圲34¨圲23a露07\214圲21¢<237朲11?东215圲10°<214朲27¥応227露07\214正常,hao“…,bufsiz=81920)http_filters.c:1540
1540如果(r->剩余<0 | | |(!r->读取分块(&r->剩余==0)){
(gdb)n
1544 bb=apr\U BACKUP\U create(r->pool,r->connection->bucket\U ALOC);
(gdb)
1545如果(bb==NULL){
(gdb)
1544 bb=apr\U BACKUP\U create(r->pool,r->connection->bucket\U ALOC);
(gdb)
1545如果(bb==NULL){
-----15441545行不在任何循环中,但它们被重复。
有谁能给我一些启发吗?

当你编译这篇文章时,你的优化程度如何


即使是最低级别的优化也会导致调试器在编译器内联、重新排序和通常处理代码时疯狂地跳过源代码行。

二进制代码编译时使用了哪些优化选项?优化可以重新排序,这意味着代码没有按您认为的顺序执行。要ilip Kendall,这是我的gcc和选项(没有优化?):gcc/g++版本:4.1.2 20080704(RedHat4.1.2-46),complile选项:-g-Wall-I..//包括-I../bayes \-I/usr/local/apache2/include-D_ulinux_u给Tom Tanner,这是我的选项:gcc/g++版本:4.1.2 20080704(RedHat4.1.2-46),complile选项:-g-Wall-I.././include-I../bayes \-I/usr/local/apache2/include-D_______________;gc/g++是否为我们默认了一些优化?运行“gcc-c-Q--help=optimizers>zo”检查“enabled”会产生大量的输出,包括一次调用函数的内联和循环不变量的移动。对于“使调试产生预期结果”来说,哪个tbh似乎是错误的。但您可以关闭这些优化,看看Tom Tanner会发生什么,什么是“tbh”?tkstbh=>老实说。我最近花了太多时间与发短信的人交谈gcc-c-Q-help=optimizers-I..//include-I../bayes-I/usr/local/apache2/include-D_u-LINUX_uuuuuuuuuuuuuuuuuuuuu.standalone.c>x-----这个命令会导致很多错误,但如果我删除“-Q-help=optimizers,它就会被编译