public inbox for gdb@sourceware.org
 help / color / mirror / Atom feed
From: Simon Marchi <simark@simark.ca>
To: Jonny Grant <jg@jguk.org>, gdb@sourceware.org
Subject: Re: gdb "Core was generated by" truncated to 80 characters
Date: Tue, 26 May 2020 10:09:39 -0400	[thread overview]
Message-ID: <7ff0989f-e139-c25b-d407-a6209f507ed4@simark.ca> (raw)
In-Reply-To: <b86d8d4e-0ea6-7eae-16f8-2f3d8df5d6d8@jguk.org>

On 2020-05-26 7:07 a.m., Jonny Grant wrote:
> [Not sure if this got through to bug-gdb@gnu.org  so resending]

gdb@sourceware.org is the right place.

> Hello
> 
> Just noticed my command line args of a core file are truncated, so it's hard to reproduce the crash as I don't know what the core was generated from.
> 
> "Core was generated by" truncated to 80 characters in the below example.
> 
> May I ask, is this a limitation of the kernel dump or gdb? When i use 'strings' I see the core does contain the full command line.

You see the name of the process as dumped by the kernel, which truncates it at
a certain length.  Here's the corresponding code in the kernel, where you see it
limited at 80 characters:

https://elixir.bootlin.com/linux/v5.6.14/source/include/uapi/linux/elfcore.h#L79

You can inspect the note with eu-readelf:

$ eu-readelf -a ./core
...
  CORE                 136  PRPSINFO
    state: 0, sname: R, zomb: 0, nice: 0, flag: 0x0000000000400600
    uid: 1000, gid: 1000, pid: 4049460, ppid: 3612973, pgrp: 4049460
    sid: 3612973
    fname: signal
    psargs: ./signal myverylonglonglongmyverylonglonglongmyverylonglonglongmyverylonglonglo
...

The complete "command line" you see with strings comes from the fact that
the argument array (argv) is present somewhere in memory.  So if you are
able to backtrace all the way to main, you might be able to print argc and
argv and deduce the command line.  Even if you aren't able to do that, you
could still do a bit of forensic to find out where the argv array is located
and get the information.

Simon

  reply	other threads:[~2020-05-26 14:09 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-26 11:07 Jonny Grant
2020-05-26 14:09 ` Simon Marchi [this message]
2020-06-07 22:27   ` Jonny Grant
2020-06-11  2:32     ` Simon Marchi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7ff0989f-e139-c25b-d407-a6209f507ed4@simark.ca \
    --to=simark@simark.ca \
    --cc=gdb@sourceware.org \
    --cc=jg@jguk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).