Re: How to use nemiver on process that block on accept() ?



bibop554 <bibop554 gmail com> a écrit:

> Hi all,

Hello Julien (I am guessing your name is Julien as there is nothing in
your email address to suggest it; please tell me if I am wrong).

> I'm using nemiver 0.9.3.

Thank you for using Nemiver, and sorry for the delay in replying.  I
usually try to reply much quicker, so please do not be discouraged to
sending messages to this mailing list for help.

> I'm trying to use nemiver on sshd. I start nemiver with this command line,
> as root:
> nemiver /path/to/sshd -p 1234 -d

I see.

> Nemiver then open with the current line pointer on main(), which is fine.
> I then click on "Continue or start"

Right.

> Then Nemiver is like "stalling", because sshd itself blocks on
> accept().

Yes.  In that case we say that Nemiver is busy because the inferior
process sshd is running.  The busy-ness is notified by the spinning
circle (we call that a throbber) at the right hand side of the tool bar.

> The problem is that the current line pointer did not update, so i can't see
> where is the accept() in source code. I still see the current line pointer
> on main(), but obviously sshd is not at the beginning of main()
> anymore.

Right.  In the current mode of operation, if you want the debugger to
tell you where the inferior process (the process you are debugging) is
stopped at, you have to stop the inferior by clicking on the 'stop'
button in the debugger, otherwise, the debugger just lets the inferior
run and doesn't get much information (about its call stack for instance)
from it.  The debugger really gets information from the inferior when it
is stopped.


Similarly, Nemiver stopped the inferior at the 'main' function at the
beginning to give you a chance to set some breakpoints etc.  You could
see the call stack precisely because the inferior was stopped.

> I would have expect Nemiver to open the corresponding source file and show
> the pointer on the line where sshd does an accept().

Yes, it should do that once you stop the inferior by clicking on the
'stop' button in the tool bar.


Note however that to see the source code of the accept call, you need to
have the debug information of the glibc package installed on your
system.  Otherwise, Nemiver can only (and will) show you the
disassembled code of the accept call.

I hope this helped.

-- 
		Dodji


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]