Инструкция указатель на символ - PullRequest
0 голосов
/ 08 мая 2018

[background]
У меня в контейнере работает 64-битное собственное приложение linux.Приложение не отвечает на сетевые запросы, но в остальном работает нормально (использование процессора / памяти, состояние потоков в порядке).Я хотел бы увидеть, где находятся его шаги.

Хост является производным от CentOS, контейнер имеет пользовательское пространство Ubuntu16.04, AFAICT ASLR включен.Контейнер не имеет возможности CAP_SYS_PTRACE, и мне не удалось подключиться ни с хоста, ни внутри контейнера с помощью gdb ...

[вопрос]
Итак, я перечислилвсе потоки с IP с ps и пытались найти IP в таблице символов:

root@0027991aa9d8:/# ps -e Ho pid,tid,stat,comm,class,eip,wchan
  PID   TID STAT COMMAND         CLS      EIP WCHAN
    1     1 Ssl  xxx             TS  cf5e474d poll_schedule_timeout
    1     9 Ssl  xxx             TS  d0580360 futex_wait_queue_me
    1    12 Ssl  xxx             TS  cf5f0a13 ep_poll

Но значения EIP не соответствуют ничему на карте памяти:

[root@bucav70-175 sdc]# cat /proc/1/maps 
00400000-00625000 r-xp 00000000 08:02 1197375                            /xxx
7fedcf4e9000-7fedcf6a9000 r-xp 00000000 08:02 3828409                    /lib/x86_64-linux-gnu/libc-2.23.so
7fedcf8b3000-7fedcf9bb000 r-xp 00000000 08:02 3828441                    /lib/x86_64-linux-gnu/libm-2.23.so
...

Глядя на таблицу символов с nm -C Я вижу адреса в соответствии с proc / x / map, но не с выводом ps:

...
00000000005a0230 t zmq::thread_t::setSchedulingParameters(int, int)
00000000005a01d0 t zmq::thread_t::stop()
00000000005a0160 t zmq::thread_t::start(void (*)(void*), void*)
...

Так, как я могу определить, какой символ соответствуетк указателю на инструкцию?

Более того, я иногда вижу такие строки в dmesg:

[  +0.000014] traps: xxx-[24878] general protection ip:7f7a40f5b196 sp:7ffd6a9aa220 error:0 in libc-2.23.so[7f7a40f24000+1c0000]

Но ни одно из чисел не имеет никакого смысла для proc / x / maps (приведенная выше строка dmesgвыполняется не так, как карты).

Пожалуйста, помогите мне интерпретировать эти значения IP!
Любые указатели на документацию по теме также приветствуются!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...