Re: Some questions about using gdb catch syscall function
Doug Evans <[email protected]>
| Newsgroups | gmane.comp.gdb.devel |
|---|---|
| Message-ID | <CADPb22RYo=k=GoXcpVsT0PTc8=pFK=dm6pKvsBqm3QH3r0rrRw@mail.gmail.com> |
I believe so. I've never actually tried it without libexpat, but I'd be surprised if it didn't work. On Mon, Dec 8, 2014 at 7:18 PM, Nan Xiao <[email protected]> wrote: > 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";<[email protected]>; > Date: Tue, Dec 9, 2014 10:53 AM > To: "Nan Xiao"<[email protected]>; > Cc: "gdb"<[email protected]>; > Subject: Re: Some questions about using gdb catch syscall function > > On Mon, Dec 8, 2014 at 6:16 PM, Nan Xiao <[email protected]> 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