Hi Zbyszek,

Thanks for your reply :)

OK, it is enough to collect user space coredump info for bug reporter frontend :)

1. const char *field, the second parameter of sd_journal_get_data, is able to set filter to limit the entries, isn't it?

2. I simply init pollfd struct with fds[0].fd = sd_journal_get_fd(m_j) && fds[0].events = sd_journal_get_events(m_j)
https://github.com/AOSC-Dev/FixMe/blob/master/test/test_systemd_journal.c#L22

But my systemd_journal testcase print out no such file or directory error
COREDUMP=ELF

Please someone give me some advice, thanks a lot!

Regards,
Leslie Zhai <xiang.z...@i-soft.com.cn>


On 2014年06月08日 05:00, Zbigniew Jędrzejewski-Szmek wrote:
Hi,
the coredump machinery provided by the kernel only works for
user space processes. Kernel faults usually end in a traceback
being printed to the console and are handled differently.

To receive information about past and future coredumps stored
in the journal you need to:

1. Add a filter which limits entries to 
MESSAGE_ID=fc2e22bc6ee647b6b90729ab34a250b1
(I think you already have this)

2. retrieve a journal file descriptor which can be used for
polling with sd_journal_get_fd()

3. loop over existing entries
(You also seem to have this implemented)

4. establish a loop which will poll for journal changes.
sd_journal_wait() implements such a loop, but if you want to run this
code from a different event loop, you should add the file descriptor
received from sd_journal_get_fd() to this external event loop. This is
described in some detail in the sd_journal_wait(3) man page.

You can use 'journalctl -f MESSAGE_ID=fc2e22bc6ee647b6b90729ab34a250b1'
as a general guide.

HTH,
Zbyszek

_______________________________________________
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to