Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: LE GARREC Vincent <legarrec.vincent@gmail.com>
To: Simon Marchi <simon.marchi@polymtl.ca>
Cc: gdb@sourceware.org
Subject: Re: Run multiple parallel instances of gdb
Date: Sun, 11 Mar 2018 21:37:00 -0000	[thread overview]
Message-ID: <CAH0JWTuDBcAHMraNUR0kUmJ4UZutBH-KxLMbCG0NnZ9U8Hf+YQ@mail.gmail.com> (raw)
In-Reply-To: <4b04209db0308576e68320a5d22181e4@polymtl.ca>

I don't have a suspended message, it a stopped. But the behavior is the
same.

[1]+  Stopped                 ./loopgdb

My stty:
speed 38400 baud; line = 0;
erase = ^H;
-brkint -imaxbel iutf8

but your diagnostic is right. Adding the "-ex tty /dev/null" is perfect.
I will do some search about this "tostop" flag.

For the minimal testcase, I did it a bit fast but the "do" didn't missing
in my code.

Thanks for your advice, you really help me,
Best regards,
Vincent

2018-03-11 21:54 GMT+01:00 Simon Marchi <simon.marchi@polymtl.ca>:

> On 2018-03-11 16:15, LE GARREC Vincent wrote:
>
>> Hi everybody,
>>
>> I would like to sort crashes found by fuzzing. So I have around 1000 files
>> that make my application crashes. I made a small program to run gdb and to
>> extract backtraces to file. To increase speed, I run parallel instances.
>>
>> Problem, with parallel instances, my program stopped. It doesn't crashes,
>> it stops. I have to run "fg" from terminal to continue and it's happening
>> very often. So actually, I'm running with single thread.
>>
>> Is it normal ? Did I do something wrong ? If you need more information, I
>> can give you.
>>
>> Please find after simple steps to reproduce the case,
>>
>> Thanks for you advices,
>>
>> Vincent Le Garrec
>>
>
> Hi Vincent,
>
> Do you get a "suspended (tty output)" message?  If so, what you have is a
> background process trying to output on the terminal while the terminal has
> the "tostop" flag set.  A simpler case to reproduce it is:
>
> $ gdb -batch -ex run --args /bin/echo salut &
> [1] 28223
> $
> [1]  + 28223 suspended (tty output)  gdb -q -batch -ex run --args
> /bin/echo salut
>
> I don't understand why though, because my terminal does not have "tostop"
> enabled:
>
> $ stty
> speed 38400 baud; line = 0;
> -brkint -imaxbel iutf8
>
> So something in the process probably sets that flag...  Anyway, one way to
> get around it is to change the terminal for the newly created inferiors,
> for example to /dev/null if you don't need them to do I/O on the terminal:
>
> $ gdb -batch -ex "tty /dev/null" -ex run --args /bin/echo salut &
> [1] 28276
> $ [Inferior 1 (process 28285) exited normally]
>
> [1]  + 28276 done       gdb -q -batch -ex "tty /dev/null" -ex run --args
> /bin/echo salut
>
> One comment below:
>
> [1] : crash program
>> main.c (in /tmp folder)
>>
>> int main()
>> {
>>   int *t = 0xDEADBEEF;
>>   *t = 1;
>> }
>>
>> Run it and it should crash.
>>
>> [2] : multiple execution of gdb
>> loopgdb.cpp
>>
>> #include <thread>
>> #include <future>
>> #include <vector>
>> #include <functional>
>> #include <unistd.h>
>> #include <iostream>
>> #include <sys/types.h>
>> #include <sys/wait.h>
>>
>> void run_gdb()
>> {
>>   pid_t child_pid = fork();
>>   std::cout << "run" << std::endl;
>>   if (child_pid != 0)
>>   {
>>     pid_t wait_pid;
>>     {
>>       wait_pid = waitpid(child_pid, nullptr, WNOHANG);
>>       sleep(1);
>>     }
>>     while(wait_pid == 0);
>>
>
> You are missing the "do" from your do/while, which results in an infinite
> loop here (if wait_pid is 0).
>
> Simon
>


  reply	other threads:[~2018-03-11 21:37 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-11 20:15 LE GARREC Vincent
2018-03-11 20:54 ` Simon Marchi
2018-03-11 21:37   ` LE GARREC Vincent [this message]
2018-03-11 22:57   ` Andreas Schwab

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=CAH0JWTuDBcAHMraNUR0kUmJ4UZutBH-KxLMbCG0NnZ9U8Hf+YQ@mail.gmail.com \
    --to=legarrec.vincent@gmail.com \
    --cc=gdb@sourceware.org \
    --cc=simon.marchi@polymtl.ca \
    /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