# Dump/pass memory, cpu...



## Kar87F (Mar 15, 2021)

Hi There,

I’m thinking about debugging data for whole system/PC. I try to get all data that runs on PC to send it to another PC live to debug. I know there Is possibility to dump memory or debug program/proces, but I would read whole data. I know that it will be bit difficult, because it needs to handle couple of sources(ram, cpu, gpu etc.).

What If I try to get memory from memory slot by some sort of adapter to put it to another machine(eg. to another slot, something like cloning)? I’m not a computer electronic master, so it may be funny to try to do it like that. Has anyone tried to do somethina similar? Or there is in kernel option that would make it simple and quick? And sens it thru ethernet card?

Thanks for replies.


----------



## SirDice (Mar 15, 2021)

Kar87F said:


> Or there is in kernel option that would make it simple and quick? And sens it thru ethernet card?


10.4. On-Line Kernel Debugging Using Remote GDB
That uses a serial connection though. Newer FreeBSD versions are also able to use netdump(4) and netgdb(4).


----------



## ralphbsz (Mar 15, 2021)

What are you trying to debug? One program: Use normal debugging techniques (like GDB). The kernel: Use the kernel debugger, as SirDice suggested. The hardware?

The fact that you seem to want to build an adapter that copies one memory DIMM to another slot on another machine makes me think that you want to do hardware debugging. That's a very specialized skill, requiring unusual and expensive hardware (typically big logic analyzers). No, I've never heard of devices that can clone a standard DIMM while running. However, there is technology that allows two computers to shard physical memory. This is known as "reflective memory", but there has been very little progress in the last ~25 years on it. The reason is that memory is big (today each SIMM can be many gigabytes), and accessed at very high throughput (the interface from CPU to memory runs at many dozen gigabyte/second). It's really hard to pump that much data through a network. So today if someone needs shared memory, it is nearly always emulated using the standard networking technologies (TCP/IP over Ethernet, or Infiniband) with a software assist. One standard software toolkit for this is called MPI or Message Passing Interface.


----------

