相关疑难解决方法(0)

我的程序崩溃时如何自动生成堆栈跟踪

我正在使用GCC编译器在Linux上工作.当我的C++程序崩溃时,我希望它能自动生成一个堆栈跟踪.

我的程序由许多不同的用户运行,它也可以在Linux,Windows和Macintosh上运行(所有版本都使用编译gcc).

我希望我的程序能够在崩溃时生成堆栈跟踪,并且在用户下次运行它时,它会询问他们是否可以将堆栈跟踪发送给我,以便我可以追踪问题.我可以处理向我发送信息,但我不知道如何生成跟踪字符串.有任何想法吗?

c++ crash gcc assert stack-trace

561
推荐指数
20
解决办法
33万
查看次数

如何在C中将int转换为字符串?

如何将int(整数)转换为字符串?我正在尝试创建一个函数,将a的数据struct转换为字符串以将其保存在文件中.

c string integer

191
推荐指数
8
解决办法
60万
查看次数

Linux中的itoa功能在哪里?

itoa()是一个非常方便的函数,可以将数字转换为字符串.Linux似乎没有itoa(),是否有相同的功能或我必须使用sprintf(str, "%d", num)

c linux

131
推荐指数
7
解决办法
26万
查看次数

如何避免在信号处理程序中使用printf?

由于printf不是可重入的,因此在信号处理程序中使用它并不安全.但我已经看到很多使用printf这种方式的示例代码.

所以我的问题是:我们何时需要避免printf在信号处理程序中使用,是否有推荐的替代品?

c linux signals

80
推荐指数
4
解决办法
3万
查看次数

My shell cannot prevent ctrl+c from killing itself

I write my own shell (source code is listed below) and set user's default shell to it.

I login with this user and type ctrl-C, and this shell is killed even though this signal is catched. However, I run this shell directly from bash, it works as I expect. What makes the difference.

Result

Login with user whose default shell is set to my own shell:

BMC login:
BMC login: naroot
Password:
BMC > signal = 2
BMC login: …
Run Code Online (Sandbox Code Playgroud)

c linux

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

标签 统计

c ×4

linux ×3

assert ×1

c++ ×1

crash ×1

gcc ×1

integer ×1

signals ×1

stack-trace ×1

string ×1