Hi Aditya,

On Wed, May 1, 2024 at 4:01 PM Aditya Gupta <adit...@linux.ibm.com> wrote:
>
> Hi Tao,
>
> On 30/04/24 08:11, Tao Liu wrote:
>
> Hi Aditya,
>
> Sorry for the late reply.
>
> On Sun, Apr 28, 2024 at 4:46 PM Aditya Gupta <adit...@linux.ibm.com> wrote:
>
> Hi Tao,
>
> Thanks for sending the series.
>
> Maybe you missed CCing people ?
>
> Yeah, I will get it fixed in v3.
>
> Sure.
>
> Also this patch's 'author' line is missing, maybe while editing the
> commit it messed up ?
>
> I didn't get it clear, where is the 'author' line? Could you give me
> an example, maybe show me the 'author' line which is valid in another
> patch?
>
> I meant, the 'Author' of this commit changed, if you notice patch #1, #8.
>
> It has a line on top of the patch:
>
> "From: Aditya Gupta <adit...@linux.ibm.com>"
>
> This is not there in patch #6. Whenever the commit's author is different than 
> the mail sender, git format-patch will add this line, and when this patch 
> series is merged, git will take the 'From' here as the author.
>
> If you see in your git log of the branch, it will show you as author. This 
> would have happened due to editing, resetting the change, commiting it again, 
> somewhere the Author field got changed automatically.
>
Oh I see... Yeah, I didn't notice that. Will get it fixed in v3.

> I will proceed with testing the series, might do it later, currently my
> mails got messed up, I got some mails in Inbox (those patches with me in
> Cc), and others in my crash-utility folder (those with Cc: crash-utility).
>
> Could you please check the
> https://github.com/liutgnu/crash-dev/commits/tao-rebase-v4?? This may
> be better for testing.
>
> Sure, I will test that Tao.

Thanks for your testing!

Thanks,
Tao Liu
>
>
> Thanks,
>
> Aditya Gupta
>
> Thanks,
> Tao Liu
>
> Thanks,
> Aditya Gupta
>
> On 28/04/24 09:32, Tao Liu wrote:
>
> Currently for most gdb_interface call, in which a non-null file pointer
> is passed, GDB's output stream is replaced with the passed file pointer
>
> Due to this, 'info threads', which is a gdb passthrough, doesn't print any
> thread, after support was added to get registers from crash_target:
>
>      crash> info threads
>        Id   Target Id         Frame
>
> This empty output of 'info threads' was due to a subtle bug in
> gdb_interface.
>
> After this gdb passthrough is run, 'datatype_info' is called, with file
> pointer set to null_fp (pointing to /dev/null). And after
> 'datatype_info' returns, any output by gdb goes to /dev/null, and hence
> the output is lost.
>
> Fix this by restoring the original output streams, after gdb_interface
> has handled the output
>
> After this patch:
>
>      crash> info threads
>        Id   Target Id         Frame
>      * 1    2131 bash         0xc000000000051e40 in crash_fadump (regs=0x0, 
> str=0xc000000002c60510 <buf> "sysrq triggered crash") at 
> arch/powerpc/kernel/fadump.c:735
>
> Cc: Sourabh Jain <sourabhj...@linux.ibm.com>
> Cc: Hari Bathini <hbath...@linux.ibm.com>
> Cc: Mahesh J Salgaonkar <mah...@linux.ibm.com>
> Cc: Naveen N. Rao <naveen.n....@linux.vnet.ibm.com>
> Cc: Lianbo Jiang <liji...@redhat.com>
> Cc: HAGIO KAZUHITO(萩尾 一仁) <k-hagio...@nec.com>
> Cc: Tao Liu <l...@redhat.com>
> Signed-off-by: Aditya Gupta <adit...@linux.ibm.com>
> Signed-off-by: Tao Liu <l...@redhat.com>
> ---
>   gdb-10.2.patch | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++
>   1 file changed, 53 insertions(+)
>
> diff --git a/gdb-10.2.patch b/gdb-10.2.patch
> index 3694b13..0bed96a 100644
> --- a/gdb-10.2.patch
> +++ b/gdb-10.2.patch
> @@ -16118,3 +16118,56 @@ exit 0
>          subclass (SYMBOL_NONE)
>        {
>          /* We can't use an initializer list for members of a base class, and
> +--- gdb-10.2/gdb/ui-file.h.orig
> ++++ gdb-10.2/gdb/ui-file.h
> +@@ -195,6 +195,7 @@ public:
> +
> +   bool can_emit_style_escape () override;
> +
> ++  FILE *get_stream(void);
> +   /* Sets the internal stream to FILE, and saves the FILE's file
> +      descriptor in M_FD.  */
> +   void set_stream (FILE *file);
> +--- gdb-10.2/gdb/ui-file.c.orig
> ++++ gdb-10.2/gdb/ui-file.c
> +@@ -161,6 +161,12 @@ stdio_file::~stdio_file ()
> +     fclose (m_file);
> + }
> +
> ++FILE*
> ++stdio_file::get_stream(void)
> ++{
> ++  return m_file;
> ++}
> ++
> + void
> + stdio_file::set_stream (FILE *file)
> + {
> +--- gdb-10.2/gdb/symtab.c.orig
> ++++ gdb-10.2/gdb/symtab.c
> +@@ -6964,8 +6964,12 @@ void
> + gdb_command_funnel_1(struct gnu_request *req)
> + {
> +         struct symbol *sym;
> ++        FILE *original_stdout_stream = nullptr;
> ++        FILE *original_stderr_stream = nullptr;
> +
> +         if (req->command != GNU_VERSION && req->command != 
> GNU_USER_PRINT_OPTION) {
> ++                original_stdout_stream = (dynamic_cast< stdio_file * 
> >gdb_stdout)->get_stream();
> ++                original_stderr_stream = (dynamic_cast< stdio_file * 
> >gdb_stderr)->get_stream();
> +                 (dynamic_cast<stdio_file *>gdb_stdout)->set_stream(req->fp);
> +                 (dynamic_cast<stdio_file *>gdb_stderr)->set_stream(req->fp);
> +         }
> +@@ -7068,6 +7072,12 @@ gdb_command_funnel_1(struct gnu_request *req)
> +                 req->flags |= GNU_COMMAND_FAILED;
> +                 break;
> +         }
> ++
> ++        /* Restore the streams gdb output was using */
> ++        if (original_stdout_stream)
> ++            (dynamic_cast<stdio_file 
> *>gdb_stdout)->set_stream(original_stdout_stream);
> ++        if (original_stderr_stream)
> ++            (dynamic_cast<stdio_file 
> *>gdb_stderr)->set_stream(original_stderr_stream);
> + }
> +
> + /*
--
Crash-utility mailing list -- devel@lists.crash-utility.osci.io
To unsubscribe send an email to devel-le...@lists.crash-utility.osci.io
https://${domain_name}/admin/lists/devel.lists.crash-utility.osci.io/
Contribution Guidelines: https://github.com/crash-utility/crash/wiki

Reply via email to