3
votes

After googling and reading I've set up kgdb over serial line, I can break into the debugger (by stopping the kernel via /proc/sysrq-trigger) and connect from host gdb, which is part of ARM toolchain.

Basically I have development board running embedded linux abd the driver I'm debugging, and my PC with two connections to the board - serial and ethernet (telnet session).

After I connect with host gdb to the target, I'm no longer able to do telnet to the board, because the only way to reproduce the memory corruption is to apply some configuration with user application on the board.

Is it expected or I'm doing something wrong, and there's a way to have alive IP connection to the target and GDB session?

1

1 Answers

2
votes

This is expected. Mainly when you connect into KDB you are breaking (stopping/freezing) the Kernel, with that it waits for you to either say "go" to run the Kernel again or trace the items in questions.

Best thing to do here is to setup a break point on the API/Funciton you are tracing, and then "Go", the kernel would run and you would get your telnet/ssh back working again, once it hit's the API it would break into the debugger, but you would lose the Telnet session again since the whole OS is frozen.