Для проверки я поигрался с простым игрушечным кейсом:
Код: Выделить всё
(gdb) info inferiors
Num Description Connection Executable
* 1 process 59316 1 (native) /home/Drew/mycode/a.out
2 process 59386 1 (native) /home/Drew/mycode/a.out
(gdb) print( $rdi )
$1 = 18874385
(gdb) set $rdi=42
(gdb) print( $rdi )
$2 = 42
(gdb) inferior 2
[Switching to inferior 2 [process 59386] (/home/Drew/mycode/a.out)]
[Switching to thread 2.1 (process 59386)]
#0 0x00002aaaab090291 in fork () from /lib64/libc.so.6
(gdb) print( $rdi )
$3 = 18874385
Интересно, как это делается? предоставляет ли современный процессор несколько одинаковых регистров исключительно для многопроцессорной обработки?
Подробнее здесь: https://stackoverflow.com/questions/792 ... -registers
Мобильная версия