<div dir="auto"><div dir="auto">Thanks a lot Eugene. I have been doing experiments with ptrace lately. I have been studying kernel syscall API and implementation of C standard library through the minimal klibc library. As with build technologies like make I have been experimenting with them as well. I will try to create a minimal debugging program myself first(tracing process exit status mostly...then to function return status). For that I will try to get printed status of all my function calls I do in a process. I am using strace on the C programs I have written to figure out the many aspects of the project itself like guessing it's rough workflow. I think after doing that I will start to get the approximate workflow of strace. I guess by that I will be able to understand what some of the project code actually means. Haven't heard of m4 and autotools I will research about them for sure.I know a little about awk so I will research about it as well. Once again thank you so much.<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu 30 Jan, 2020, 11:34 AM Eugene Syromiatnikov, <<a href="mailto:esyr@redhat.com" rel="noreferrer noreferrer noreferrer noreferrer noreferrer" target="_blank">esyr@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Mon, Jan 20, 2020 at 03:14:16PM +0530, Ayush Dwivedi wrote:<br>
> Hello everyone,<br>
<br>
Hello.<br>
<br>
> This is Ayush. I am a college student studying computer science. I find<br>
> Linux operating system really interesting and I love C language. Recently I<br>
> have been studying syscalls and IPCs. I have used strace along with gdb and<br>
> valgrind at times. I wrote a minimal Linux Shell as a hobby project and as<br>
> of now it can execute most command constructs including pipes and file<br>
> descriptor creation using shell symbols I will add scripting capabilities<br>
> to it. I wanted to know how and where should I start contributing to the<br>
> strace project and what are the preliminary skills and knowledge base I<br>
> need to have.<br>
<br>
You may want to check out [1][2]. The preliminary skills are knowledge<br>
of C language, POSIX, and Linux APIs (especially ptrace), to some extent.<br>
Knowledge of POSIX shell, awk, make, and autotools/m4 are also deemed useful.<br>
<br>
> What are some other projects that are similar to strace but<br>
> quite minimal to start with that I can check out?<br>
<br>
There are quite some ptrace-based tracers, but it's difficult to refer<br>
to any of them, as they usually aren't correct and/or cross-platform.<br>
Implementation of syscall tracing in ltrace and gdb is likely worth<br>
studying, though.<br>
<br>
[1] <a href="https://strace.io/wiki/NewContributorGuide" rel="noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer" target="_blank">https://strace.io/wiki/NewContributorGuide</a><br>
[2] <a href="https://gitlab.com/strace/strace/blob/master/README-hacking" rel="noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer" target="_blank">https://gitlab.com/strace/strace/blob/master/README-hacking</a><br>
<br>
-- <br>
Strace-devel mailing list<br>
<a href="mailto:Strace-devel@lists.strace.io" rel="noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer" target="_blank">Strace-devel@lists.strace.io</a><br>
<a href="https://lists.strace.io/mailman/listinfo/strace-devel" rel="noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer" target="_blank">https://lists.strace.io/mailman/listinfo/strace-devel</a><br>
</blockquote></div>