2017-07-06 54 views
0

我有,我刚刚得知一个奇怪的问题。如果我在Visual Studio中运行此代码,则会得到空/错误的输出。但是当我在cLion中运行时,我只是碰到应用程序崩溃而没有反馈。克利翁和CMake的不debugning /打印错误

VS错误:

Exception thrown: read access violation. 
this was nullptr. 

这里是我的配置:

的main.cpp

#include <iostream> 

using namespace std; 

class testNothing { 
public: 
    testNothing *test; 
    void donothing() { cout << test << endl; }; 
}; 

int main() 
{ 
    testNothing *hey = nullptr; 

    hey->donothing(); 

    return 1; 
}; 

CMakeList.txt

cmake_minimum_required(VERSION 3.8) 
project(tests) 
set(CMAKE_CXX_STANDARD 14) 
set(CMAKE_INCLUDE_CURRENT_DIR ON) 
set(CMAKE_AUTOMOC ON) 
set(CMAKE_AUTOUIC ON) 
set(SOURCE_FILES main.cpp) 
add_executable(${PROJECT_NAME} ${SOURCE_FILES}) 
+0

不知道为什么你这个标记为'debugging'当你似乎没有尝试任何......?打印运行时错误的程序不是“调试”;你需要自己调用它。 SO不是调试服务。 –

回答

1

要接收反馈,您可以运行您的项目处于“调试”模式。

你可以去运行>从菜单栏调试,或只需按下左上角的“错误”图标进入调试模式。

输出在调试模式:EXC_BAD_ACCESS (code=1, address=0x0)

你也将得到同样的完全互动的堆栈跟踪。

+1

鉴于在OP没有尝试调试的地方发布了多少个问题,我认为最好只写一个评论,将他们链接到一个全面的调试教程,而不是发布答案。虽然这可能解释他们如何找到答案,但它本身并不是一个答案。 –

+0

感谢有关调试的信息。我以前只用过python和pycharm/cline的“run”函数。没有意识到有一个调试选项,因为我认为正常运行时发生了这种情况。就像在python中一样。有点奇怪,它不是1和相同的行动寿?...? – Dariusz

+0

@Dariusz这并不意味着要采取同样的行动。运行时错误意味着在“运行时”显示。 :)我可以理解错过了'调试'选项。 如果这回答您的问题,请将其标记为已接受! –