小编c-u*_*hin的帖子

来自未处理异常的c ++堆栈跟踪?

之前已经问过这个问题,并且有特定于Windows的答案,但没有令人满意的gcc答案.我可以set_terminate()用来设置一个函数,terminate()当抛出未处理的异常时,该函数将被调用(代替).我知道如何使用backtrace库从程序中的给定点生成堆栈跟踪.但是,当我的终止替换被调用时,这将无济于事,因为此时堆栈已被解除.

然而,如果我只是允许程序abort(),它将产生一个核心转储,其中包含从抛出异常的点开始的完整堆栈信息.所以信息就在那里 - 但是有没有一种编程方式来获取它,例如它可以被记录,而不是必须检查核心文件?

c++ callstack exception-handling stack-trace unhandled-exception

31
推荐指数
1
解决办法
2万
查看次数

ddd在开始时挂起

之前已经问过问题,我看到ddd新闻组的错误报告,但没有一个建议的解决方案适合我.

它出现了,但当你尝试做一些事情,比如打开一个文件时,它会挂起"等待GDB准备好"的消息.

其他人报告的一个关键事实是,它对某些用户而不是其他用户都有效.我对环境进行了比较,但未发现任何显着差异.任何建议将非常感谢.

gdb ddd-debugger

21
推荐指数
4
解决办法
1万
查看次数

设置GDB硬件观察点/如何设置软件观察点

之前的一个问题解释说,在x86上,被监视对象的大小受调试寄存器的限制.正如所料,我可以"观察"一个双变量.但我不能看一个双数据,例如,

watch pObject->dPrice
Run Code Online (Sandbox Code Playgroud)

产生

Hardware watchpoint 1: pObject->dPrice
Run Code Online (Sandbox Code Playgroud)

但是,当你试图继续执行时,它说

无法插入硬件断点:您可能请求了太多硬件断点/观察点.

即使这是唯一的断点/观察点.

我很好奇为什么会这样,但更重要的是有办法吗?根据GDB文档,如果它不能使用硬件,它可能会使用软件观察点.在这种情况下,它不会尝试使用软件观察点 - 是否有办法强制它这样做?

c++ linux x86 gdb

19
推荐指数
3
解决办法
1万
查看次数

git:如何看到推送引起的变化?

我无法弄清楚如何通过'推送'来查看远程存储库中究竟发生了什么变化.'git log'向我展示了一系列提交,但这些提交发生在我的本地存储库中,并在不同时间被推送; 我想知道哪些提交是每个特定"推"的一部分

git git-push git-log

17
推荐指数
1
解决办法
1万
查看次数

git:如何在特定日期检索所有文件

我确信这可以做到(?)(在明文中它会非常简单).

git

12
推荐指数
2
解决办法
1万
查看次数

如何确定bjam中cxxflags的值?还是附加到它?

我需要使用bjam添加到编译器标志.所以要么我需要一种方法来附加到现有的标志 - 比如CXXFLAGS + =使用gmake的任何东西 - 或者我需要知道当前使用的cxxflags值所以我可以用我的添加替换它.

像往常一样,文档让我对bjam的复杂性感到惊讶,但没有能够对它做任何有用的事情.

c++ bjam

7
推荐指数
1
解决办法
4600
查看次数

指定文件描述符编号?

我的理解是,当使用 open() 打开新文件时,无法控制操作系统分配的文件描述符(整数)。那么如何在 bash shell 中使用类似的命令分配特定的文件描述符

exec 5>&1
Run Code Online (Sandbox Code Playgroud)

(我想我可以通过阅读 bash 源代码找到...)

c unix linux bash file-descriptor

7
推荐指数
1
解决办法
3398
查看次数

如何在bjam中创建一个新变种

我已经尝试过阅读文档,但这是相当难以理解的,所以我希望有人可能有一个简单的答案.我想基于'debug'定义一个新的'variant',它只是将一些宏定义添加到编译器命令行,例如"-DSOMEMACRO".我想我可以做这个作为调试的"子变体",或者只是定义一个复制'debug'的新变种,但我甚至不确定在哪里做这个.看起来$ BOOST_BUILD_DIR/build中的feature.jam可能就是这个地方.也许我真正想要的只是一个新的"功能",但我仍然不清楚我需要做什么以及在哪里,我不知道'功能'是否允许我将构建产品指向不同的目录到'debug'构建.

任何建议将不胜感激.(如果您想知道,我必须使用bjam,因为它已被采纳为我们的企业标准.)

boost-build bjam

5
推荐指数
1
解决办法
2130
查看次数

SFINAE:有些失败比其他失败更平等?

我正在尝试使用SFINAE来区分具有名为"name"的成员的类.我在似乎是标准模式的情况下进行了设置,但它没有工作 - 而不是默默地忽略'失败'替换,编译器会产生错误.

我确信我遇到了一些模板替换规则,如果有人能解释哪一个,我将不胜感激.

这是一个精简的例子.我正在使用gcc:

 template <typename U> string test( char(*)[sizeof(U::name)] = 0 ) { return "has name!"; }
 template <typename U> string test(...) { return "no name"; }

 struct HasName { string name; }
 struct NoName  {}

 cout << "HasName: " << test<HasName>(0) << endl;  //fine
 cout << "NoName: " << test<NoName>(0) << endl;    //compiler errors:

 //error: size of array has non-integral type `<type error>'
 //error: `name' is not a member of `NoName'
Run Code Online (Sandbox Code Playgroud)

c++ templates sfinae template-specialization

5
推荐指数
1
解决办法
249
查看次数

OpenOffice pyuno"全选"

有谁知道如何使用OO uno bridge api在Calc表中"全选"?

或者,找到最大使用的行和列号将起作用.

我想要做的是将格式应用于电子表格中的所有单元格.

(原因是我将工作表保存为csv,因此除非格式提供足够的小数位,否则数字不会准确保存.)

python openoffice.org uno pyuno openoffice-calc

5
推荐指数
1
解决办法
1101
查看次数