簡體   English   中英

在 clion 中使用 MSVC 工具鏈時無法調試“iostream”相關代碼

[英]Cant debug `iostream` related code when using MSVC toolchain in clion

我是 c++ 開發的新手,我發現我無法在與 iostream 相關的 class 中放置斷點,如果我強制步入調用basic_streambuf::xsgetn之類的 iostream 函數,我將得到一個我完全沒有興趣閱讀的反匯編視圖.

我正在使用帶有Visual Studio工具鏈的 clion。 有沒有辦法用這些類進行正常調試?

順便說一下,如何使用lldb來獲取unique_ptr的實際值,現在我用的是ptr._Mypair._Myval2 ,看起來真的很難看....

經過幾天的挖掘。 事實證明,將以下內容添加到 CMakeLists.txt 解決了問題

if("${CMAKE_CXX_COMPILER_ID}" MATCHES "MSVC")
    message(STATUS " MSVC DEBUG RUNTIME")
    # enable debugging of runtime library
    set_property(TARGET archive_patcher_cpp PROPERTY
            MSVC_RUNTIME_LIBRARY "MultiThreadedDebug")
endif()

注意:這將靜態鏈接運行時,因此可執行文件大小會更大,這需要 cmake 3.15 或更高版本。

參考: https://cmake.org/cmake/help/v3.15/prop_tgt/MSVC_RUNTIME_LIBRARY.html

對於低於 3.15 的 cmake:

set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM