如何修复 OpenMP 程序的 gdb 运行中的线程数



我正在尝试在Mac OSX机器上使用gdb调试OpenMP C++程序。 (好的,从技术上讲使用"ggdb"。 无论我OMP_NUM_THREADS什么设置,gdb 都会尝试在 8 个线程上运行代码。 这是为什么呢? 有没有办法让我自己告诉它代码将运行的线程数?

好吧,我想我是在展示我的无知,但我在我之前设置了它 启动调试器。我应该在调试器中执行此操作吗?

您应该在 gdb 中设置环境变量OMP_NUM_THREADS

(gdb) set environment OMP_NUM_THREADS 2

另请参阅内置帮助:

(gdb) help set environment 
Set environment variable value to give the program.
Arguments are VAR VALUE where VAR is variable name and VALUE is value.
VALUES of environment variables are uninterpreted strings.
This does not affect the program until the next "run" command.

最新更新