
用的是 vscode+cmake,debug 的方式是配置 Launch.json 和 tasks.json 执行 cmake 构建命令并运行可执行文件。 现在遇到的问题是:不知道怎么查看多线程中多个线程的调试信息。 我在网上看见给命令加-pthread的,以下是我的CMakeLists.txt文件
cmake_inimum_required(VERSION 3.10) # 添加了 -pthread set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++20 -pthread") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c17") project(thread-pool) set(HOME ${CMAKE_CURRENT_SOURCE_DIR}) set(EXECUTABLE_OUTPUT_PATH ${HOME}/bin) include_directories(${HOME}/include) link_directories(${HOME}/bin) aux_source_directory(${HOME}/src SRC_PATH) add_executable(app ${SRC_PATH}) target_link_libraries(app PUBLIC pthread) 结果 vscode 中还是看不到多个线程的调试信息。 大手子都是怎么看多线程调试信息的?
1 coderluan 2024-09-30 01:13:16 +08:00 从楼主这个 pthread 加的,看出来楼主应该完全没 C++基础。那么就消停安装 vs 没有 c ,cmake 生成个 vs 项目,默认加断点就能在多线程之间调试。人生苦短,别为难自己。 |
2 asuraa 2024-09-30 01:15:16 +08:00 直接用 visual studio 2022 别折腾 cmake 了,这玩意太蛋疼了 |
3 Donaldo 2024-09-30 01:56:24 +08:00 没太懂你这个多个线程的调试信息是什么意思?想在哪断就在哪打断点呗? |
4 ashong 2024-09-30 01:59:54 +08:00 via iPhone @asuraa 现在倒是喜欢用 cmake 了, 反正 vs 也支持 cmake 管理,就是在用的 Xcode 版本还不支持 |
7 fcyxp 2024-09-30 08:40:26 +08:00 你的问题是否是,当设置的断点命中时,查看其他线程正在执行哪一个代码/指令? |
8 exch4nge 2024-09-30 10:56:16 +08:00 vscode 断下来后,默认会显示多个线程吧 https://code.visualstudio.com/docs/cpp/cpp-debug#_multithreaded-debugging 要是 linux 建议先学 gdb |
9 garychenlin 2024-09-30 11:40:48 +08:00 没用 vscode 调试过,我都用 gdb ,命令 info threads 、thread <id> |