Re: Some questions about using gdb catch syscall function

Nan Xiao
2014-12-09T03:19:20Z

Hi Doug,

Thanks very much for your detailed and kindly explanations!

Per my understanding, if no "libexpat", "catch syscall" and "catch syscall number" still work normally, except some warnings. Right?

Best Regards
Nan Xiao
------------------ Original ------------------
From: "Doug Evans";<dje@google.com>;
Date: Tue, Dec 9, 2014 10:53 AM
To: "Nan Xiao"<xiaonan19830818@qq.com>;
Cc: "gdb"<gdb@sourceware.org>;
Subject: Re: Some questions about using gdb catch syscall function

On Mon, Dec 8, 2014 at 6:16 PM, Nan Xiao <xiaonan19830818@qq.com> wrote:
> Hi all,
>
> I am using gdb's catch syscall function(https://sourceware.org/gdb/onlinedocs/gdb/Set-Catchpoints.html#index-catch-syscall), and meets some issues. The procedure of running gdb is like this:
>
> (gdb) catch syscall
> warning: Can not parse XML syscalls information; XML support was disabled at compile time.
> Catchpoint 1 (any syscall)
> (gdb) catch syscall 1
> Catchpoint 2 (syscall 1)
> (gdb) catch syscall read
> Unknown syscall name 'read'.
>
> My questions are:
> (1) gdb prints "warning: Can not parse XML syscalls information; XML support was disabled at compile time.". Does it affect the normal use of catch function? It seems the gdb can set catchpoint normally.

You need to build gdb with "libexpat".
Check that you have it installed (I'm assuming not) and rebuild gdb.
If you have libexpat installed in a non-standard place, there are
options to gdb/configure to tell the build system where to find
libexpat.

bash$ gdb/configure --help # and grep for expat

>
> (2) I can use "catch syscall number" correctly, why can't use "catch syscall name"?

gdb uses libexpat to parse the xml descriptions of the syscalls, which
is how it knows their names.
No libexpat -> no ability to recognize syscall names.

>
> P.S., my gdb is 7.8.1 and runs on Linux X86.
>
> Could anyone give any comments about this issue? Thanks very much in advance!
>
> Best Regards
> Nan Xiao\x16º&ÖëzÛ«ŸýßÙb²Ö«r\x18\x1d