自定义核心转储

发布于 2024-12-05 19:43:29 字数 141 浏览 0 评论 0原文

谁能告诉我是否有一种方法可以强制其中包含某些特定信息的段错误。可以通过调用 abort() 来强制发生段错误。但我需要一些东西 就像 abort(ptr) 一样,其中 ptr 是一个指针,它告诉实际内存中某些损坏开始的位置。

谢谢, 卡皮尔·乌帕德哈耶

can anybody tell me if there is a way we can force a segfault with certain specific information in it. Forcing a segfault can be done through abort(), call. But i need something
like abort(ptr), where ptr is a pointer that tells the actual memory where some corruption started.

thanks,
Kapil Upadhayay

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

请恋爱 2024-12-12 19:43:29

你的问题很不清楚。核心转储包含整个进程的内存快照,因此它已经包含您希望它包含的信息。

如果您想让查找该信息更容易,您可以引入一个全局的,例如

void *a_corrupt_ptr;  // global

void some_func() {
...

  if (the_pointer_has_been_corrupted(ptr)) {
    a_corrupt_ptr  = ptr;
    abort();
  }

,然后在调试器中检查a_corrupt_ptr

或者您可以在调用 abort() 之前简单地打印该值。

Your question is very unclear. Core dump contains a memory snapshot of your entire process, so it already contains the info you want it to contain.

If you want to make finding that info easier, you can introduce a global, e.g.

void *a_corrupt_ptr;  // global

void some_func() {
...

  if (the_pointer_has_been_corrupted(ptr)) {
    a_corrupt_ptr  = ptr;
    abort();
  }

and then examine a_corrupt_ptr in your debugger.

Or you can simply print the value before calling abort().

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文