即使gccv7和v9.3.1-O0优化已关闭,GDB仍会显示变量<optimized out>

如何解决即使gccv7和v9.3.1-O0优化已关闭,GDB仍会显示变量<optimized out>

已修正! 只有3个源代码模块,没有make文件。如图所示,一个gcc命令进行编译和链接。我看不到所有方式都无法编译的方式。

我尝试打印的矩阵指针是从较大的结构数组提取到自动变量的。当我在gdb中打印完整的结构路径时,它就起作用了。

当您明确关闭优化并在COLLECT_GCC_OPTIONS ='-O0'中显示详细的编译器输出进行验证时,“使调试产生预期的结果”以优化并隐藏变量似乎是矛盾的。

即使使用-0g,别名变量仍为

在Opensuse飞跃15.1上使用gcc 9.3.1 设置env var CFLAGS =“” 使用-O0关闭所有优化 我也尝试使用gcc 7.5.0 我正在隔离。当我尝试在gdb中打印变量时,它们显示

您的帖子似乎主要是代码;请添加更多详细信息。 更多详情 更多细节 修复了!!

user1@nova:~/bin> CFLAGS=""; gcc -v  -O0 -g -m64  -Wuninitialized -fopenmp -I/usr/local/mysql/include -O0 /home/user1/bin/align_ppm.c -lm  -lgd -lpng16 -lz            -o /home/user1/bin/align_ppm_d 
`/home/user1/bin/align_ppm_d' has changed; re-reading symbols.
Starting program: /home/user1/bin/align_ppm_d pf-2020.0805-291582.dt.ppm  pf-2020.0805-291583.dt.ppm  -d -d -s  -d  -f    > ap23c.dt.log

[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
[New Thread 0x7fff58627700 (LWP 5330)]
[New Thread 0x7fff57e26700 (LWP 5331)]
[New Thread 0x7fff57625700 (LWP 5332)]
[New Thread 0x7fff56e24700 (LWP 5333)]
[New Thread 0x7fff56623700 (LWP 5334)]
[New Thread 0x7fff55e22700 (LWP 5335)]
[New Thread 0x7fff55621700 (LWP 5336)]

Thread 1 "align_ppm_d" received signal SIGSEGV,Segmentation fault.
0x00000000004a5631 in graph_hit_mis (mgc=0x718d80 <MGC>,smcss=0x719c10 <smcss>,gfinal=1,maia=0x719b70 <MMIA>,tsa=0x71a440 <tsa>,debug=3) at /home/user1/bin/align_ppm.c:1240
     1240                                              if((fmat[fy][fintoff]) & bmask) hitidx += 2; } // FIN
(gdb) p fmat
$151 = <optimized out>
(gdb) p  fmat[fy][fintoff]
value has been optimized out
Using built-in specs.
COLLECT_GCC=/usr/bin/gcc-9
COLLECT_LTO_WRAPPER=/usr/lib64/gcc/x86_64-suse-linux/9/lto-wrapper
OFFLOAD_TARGET_NAMES=hsa:nvptx-none
Target: x86_64-suse-linux
Configured with: ../configure --prefix=/usr --infodir=/usr/share/info --mandir=/usr/share/man --libdir=/usr/lib64 --libexecdir=/usr/lib64 --enable-languages=c,c++,fortran,ada,go --enable-offload-targets=hsa,nvptx-none=/usr/nvptx-none,--without-cuda-driver --disable-werror --with-gxx-include-dir=/usr/include/c++/9 --enable-ssp --disable-libssp --disable-libvtv --disable-cet --disable-libcc1 --disable-plugin --with-bugurl=https://bugs.opensuse.org/ --with-pkgversion='SUSE Linux' --with-slibdir=/lib64 --with-system-zlib --enable-libstdcxx-allocator=new --disable-libstdcxx-pch --enable-version-specific-runtime-libs --with-gcc-major-version-only --enable-linker-build-id --enable-linux-futex --enable-gnu-indirect-function --program-suffix=-9 --without-system-libunwind --enable-multilib --with-arch-32=x86-64 --with-tune=generic --build=x86_64-suse-linux --host=x86_64-suse-linux
Thread model: posix
gcc version 9.3.1 20200406 [revision 6db837a5288ee3ca5ec504fbd5a765817e556ac2] (SUSE Linux) 
COLLECT_GCC_OPTIONS='-v' '-O0' '-g' '-m64' '-Wuninitialized' '-fopenmp' '-I' '/usr/local/mysql/include' '-O0' '-o' '/home/user1/bin/align_ppm_d' '-mtune=generic' '-march=x86-64' '-pthread'
 /usr/lib64/gcc/x86_64-suse-linux/9/cc1 -quiet -v -I /usr/local/mysql/include -D_REENTRANT /home/user1/bin/align_ppm.c -quiet -dumpbase align_ppm.c -m64 -mtune=generic -march=x86-64 -auxbase align_ppm -g -O0 -O0 -Wuninitialized -version -fopenmp -o /home/user1/tmp/cchRAKiS.s
GNU C17 (SUSE Linux) version 9.3.1 20200406 [revision 6db837a5288ee3ca5ec504fbd5a765817e556ac2] (x86_64-suse-linux)
        compiled by GNU C version 9.3.1 20200406 [revision 6db837a5288ee3ca5ec504fbd5a765817e556ac2],GMP version 6.1.2,MPFR version 4.0.1,MPC version 1.1.0,isl version isl-0.18-GMP

GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/mysql/include
 /usr/lib64/gcc/x86_64-suse-linux/9/include
 /usr/local/include
 /usr/lib64/gcc/x86_64-suse-linux/9/include-fixed
 /usr/lib64/gcc/x86_64-suse-linux/9/../../../../x86_64-suse-linux/include
 /usr/include
End of search list.
GNU C17 (SUSE Linux) version 9.3.1 20200406 [revision 6db837a5288ee3ca5ec504fbd5a765817e556ac2] (x86_64-suse-linux)
        compiled by GNU C version 9.3.1 20200406 [revision 6db837a5288ee3ca5ec504fbd5a765817e556ac2],isl version isl-0.18-GMP

GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 00000000000000000000000000000000
COLLECT_GCC_OPTIONS='-v' '-O0' '-g' '-m64' '-Wuninitialized' '-fopenmp' '-I' '/usr/local/mysql/include' '-O0' '-o' '/home/user1/bin/align_ppm_d' '-mtune=generic' '-march=x86-64' '-pthread'
 /usr/lib64/gcc/x86_64-suse-linux/9/../../../../x86_64-suse-linux/bin/as -v -I /usr/local/mysql/include --64 -o /home/user1/tmp/ccCC3GjB.o /home/user1/tmp/cchRAKiS.s
GNU assembler version 2.32.0 (x86_64-suse-linux) using BFD version (GNU Binutils; openSUSE Leap 15.1) 2.32.0.20190909-lp151.3.6
COMPILER_PATH=/usr/lib64/gcc/x86_64-suse-linux/9/:/usr/lib64/gcc/x86_64-suse-linux/9/:/usr/lib64/gcc/x86_64-suse-linux/:/usr/lib64/gcc/x86_64-suse-linux/9/:/usr/lib64/gcc/x86_64-suse-linux/:/usr/lib64/gcc/x86_64-suse-linux/9/../../../../x86_64-suse-linux/bin/
LIBRARY_PATH=/usr/lib64/gcc/x86_64-suse-linux/9/:/usr/lib64/gcc/x86_64-suse-linux/9/../../../../lib64/:/lib/../lib64/:/usr/lib/../lib64/:/usr/lib64/gcc/x86_64-suse-linux/9/../../../../x86_64-suse-linux/lib/:/usr/lib64/gcc/x86_64-suse-linux/9/../../../:/lib/:/usr/lib/
Reading specs from /usr/lib64/gcc/x86_64-suse-linux/9/libgomp.spec
COLLECT_GCC_OPTIONS='-v' '-O0' '-g' '-m64' '-Wuninitialized' '-fopenmp' '-I' '/usr/local/mysql/include' '-O0' '-o' '/home/user1/bin/align_ppm_d' '-mtune=generic' '-march=x86-64' '-pthread'
 /usr/lib64/gcc/x86_64-suse-linux/9/collect2 -plugin /usr/lib64/gcc/x86_64-suse-linux/9/liblto_plugin.so -plugin-opt=/usr/lib64/gcc/x86_64-suse-linux/9/lto-wrapper -plugin-opt=-fresolution=/home/user1/tmp/cc1z5Qzl.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lpthread -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o /home/user1/bin/align_ppm_d /usr/lib64/gcc/x86_64-suse-linux/9/../../../../lib64/crt1.o /usr/lib64/gcc/x86_64-suse-linux/9/../../../../lib64/crti.o /usr/lib64/gcc/x86_64-suse-linux/9/crtbegin.o /usr/lib64/gcc/x86_64-suse-linux/9/crtoffloadbegin.o -L/usr/lib64/gcc/x86_64-suse-linux/9 -L/usr/lib64/gcc/x86_64-suse-linux/9/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib64/gcc/x86_64-suse-linux/9/../../../../x86_64-suse-linux/lib -L/usr/lib64/gcc/x86_64-suse-linux/9/../../.. /home/user1/tmp/ccCC3GjB.o -lm -lgd -lpng16 -lz -lgomp -lgcc --push-state --as-needed -lgcc_s --pop-state -lpthread -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib64/gcc/x86_64-suse-linux/9/crtend.o /usr/lib64/gcc/x86_64-suse-linux/9/../../../../lib64/crtn.o /usr/lib64/gcc/x86_64-suse-linux/9/crtoffloadend.o
COLLECT_GCC_OPTIONS='-v' '-O0' '-g' '-m64' '-Wuninitialized' '-fopenmp' '-I' '/usr/local/mysql/include' '-O0' '-o' '/home/user1/bin/align_ppm_d' '-mtune=generic' '-march=x86-64' '-pthread'


解决方法

gcc似乎可以优化别名变量 当我尝试打印别名版本时,gdb只会打印 从一组结构中打印深层嵌套的原始变量,然后按预期进行打印。 在此处发布的类似问题中,使用-O0进行编译可解决此问题。这不适用于我的代码。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


依赖报错 idea导入项目后依赖报错,解决方案:https://blog.csdn.net/weixin_42420249/article/details/81191861 依赖版本报错:更换其他版本 无法下载依赖可参考:https://blog.csdn.net/weixin_42628809/a
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下 2021-12-03 13:33:33.927 ERROR 7228 [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPL
错误1:gradle项目控制台输出为乱码 # 解决方案:https://blog.csdn.net/weixin_43501566/article/details/112482302 # 在gradle-wrapper.properties 添加以下内容 org.gradle.jvmargs=-Df
错误还原:在查询的过程中,传入的workType为0时,该条件不起作用 &lt;select id=&quot;xxx&quot;&gt; SELECT di.id, di.name, di.work_type, di.updated... &lt;where&gt; &lt;if test=&qu
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员 redisSetCpuAffinity(server.server_cpulist); ^ server.c: 在函数‘hasActiveC
解决方案1 1、改项目中.idea/workspace.xml配置文件,增加dynamic.classpath参数 2、搜索PropertiesComponent,添加如下 &lt;property name=&quot;dynamic.classpath&quot; value=&quot;tru
删除根组件app.vue中的默认代码后报错:Module Error (from ./node_modules/eslint-loader/index.js): 解决方案:关闭ESlint代码检测,在项目根目录创建vue.config.js,在文件中添加 module.exports = { lin
查看spark默认的python版本 [root@master day27]# pyspark /home/software/spark-2.3.4-bin-hadoop2.7/conf/spark-env.sh: line 2: /usr/local/hadoop/bin/hadoop: No s
使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams[&#39;font.sans-serif&#39;] = [&#39;SimHei&#39;] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -&gt; systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping(&quot;/hires&quot;) public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate&lt;String
使用vite构建项目报错 C:\Users\ychen\work&gt;npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-