获取std:logic\u错误的任何行号 我的C++程序退出了一个STD::LogICHOLL错误,我想追查引起它的源代码行。我该怎么做

获取std:logic\u错误的任何行号 我的C++程序退出了一个STD::LogICHOLL错误,我想追查引起它的源代码行。我该怎么做,c++,runtime-error,C++,Runtime Error,TBH,我正在使用gdb,使用g++-g来添加调试信息。我只能得到以下信息: 此应用程序已请求运行时以异常方式终止它。 有关更多信息,请联系应用程序的支持团队。 在抛出“std::logic_error”实例后调用terminate what():基本\u字符串::\u S\u构造null无效 Catchpoint 1 (exception thrown), 0x0045ffa0 in __cxa_throw () (gdb) bt #0 0x0045ffa0 in __cxa_throw (

TBH,我正在使用gdb,使用g++-g来添加调试信息。我只能得到以下信息:

此应用程序已请求运行时以异常方式终止它。 有关更多信息,请联系应用程序的支持团队。 在抛出“std::logic_error”实例后调用terminate what():基本\u字符串::\u S\u构造null无效

Catchpoint 1 (exception thrown), 0x0045ffa0 in __cxa_throw ()
(gdb) bt
#0  0x0045ffa0 in __cxa_throw ()
#1  0x004601e8 in std::__throw_logic_error(char const*) ()
#2  0x00502238 in typeinfo for std::__timepunct<wchar_t> ()
#3  0x004685f8 in std::runtime_error::what() const ()
#4  0x03210da8 in ?? ()
#5  0x002efbcc in ?? ()
#6  0x00468734 in std::domain_error::~domain_error() ()
#7  0x00000000 in ?? ()
(gdb)
Catchpoint 1(抛出异常),0x0045ffa0在cxa抛出()
(gdb)英国电信
#0 0x0045ffa0英寸cxa掷程()
#标准中的1 0x004601e8::\抛出\逻辑\错误(字符常量*)()
#std:uu timepunt()的类型信息中有2 0x00502238
#std::runtime\u错误::what()常量()中的3 0x004685f8
#4 0x03210da8英寸??()
#5 0x002efbcc英寸??()
#std::domain_error::~domain_error()()中的6 0x00468734
#7 0x00000000英寸??()
(gdb)
您可以使用调试器


<>使用调试器工具是使用C语言和C++语言编译的一个非常重要的技能。

< P>例外对象不携带任何源信息。但是,它们希望包含一条有用的消息,可以使用
what()
成员访问。除此之外,您必须使用允许在抛出异常时中断的调试器,或者在
std::logic\u error
的构造函数中设置断点。只要例外情况是例外,这就行。对于在非异常情况下抛出异常的代码,它的效果不太好。

谢谢,您的答案实际上是正确的,但我忘了提到我正在尝试使用g++和gdb。