История изменений
Исправление
Moisha_Liberman,
(текущая версия)
:
Это, на секундочку, всего лишь mmap/munmap/mremap/sbrk
Да, но вообще-то, strace
позволяет совать нос в любые функции, важно только правильно указать ему куда смотреть надо. Например, вот тут мы с уважаемым Toxo2 гонялись за execve()
– Есть ли настоящий C shell, а не csh? Укажите через -e
какие функции именно Вас интересуют и вперёд. Если выхлоп не будет помещаться в одну строку, то можете через -s 10000
указать строку вывода в 10000 символов. Должно хватить, на мой взгляд. Писать здесь man strace
я не стал ибо это несколько унизительно, как на мой взгляд. Очевидная вообщем-то вещь.
Принципиально не работает на статически слинкованных бинарниках.
Да, Вы правы. Но у меня почему-то сложилось впечатление что у Вас есть и статически и динамически слинкованный код. Возможно я и не прав, извините.
Если есть динамически слинкованный код, то можно было бы понаблюдать за ним. Поведение функций тут не должно различаться. Если сказано зарезервировать N байт в памяти, то не важно как там прилинкована библиотека. Я их этого исходил.
Я так же не стал Вам рекомендовать использовать gdb
или ptrace
для наблюдения за процессом извне, т.к. код может быть тщательно соптимизирован и картину работы с памятью возможно придётся долго восстанавливать. Хотя, в моём случае в gdb
том же есть поддержка скриптования на python и скриптами проще искать проблему бывает.
всегда проще ручками для LD_PRELOAD-а написать костылик.
Не всегда возможно, по этой причине я лично на свой вкус и цвет это вариант как правило избегаю.
Исходная версия
Moisha_Liberman,
:
Уточню.
Это, на секундочку, всего лишь mmap/munmap/mremap/sbrk
Да, но вообще-то, strace
позволяет совать нос в любые функции, важно только правильно указать ему куда смотреть надо. Например, вот тут мы с уважаемым Toxo2 гонялись за execve()
– Есть ли настоящий C shell, а не csh? Укажите через -e
какие функции именно Вас интересуют и вперёд. Если выхлоп не будет помещаться в одну строку, то можете через -s 10000
указать строку вывода в 10000 символов. Должно хватить, на мой взгляд.
Принципиально не работает на статически слинкованных бинарниках.
Да, Вы правы. Но у меня почему-то сложилось впечатление что у Вас есть и статически и динамически слинкованный код. Возможно я и не прав, извините.
Если есть динамически слинкованный код, то можно было бы понаблюдать за ним. Поведение функций тут не должно различаться. Если сказано зарезервировать N байт в памяти, то не важно как там прилинкована библиотека. Я их этого исходил.
Я так же не стал Вам рекомендовать использовать gdb
или ptrace
для наблюдения за процессом извне, т.к. код может быть тщательно соптимизирован и картину работы с памятью возможно придётся долго восстанавливать. Хотя, в моём случае в gdb
том же есть поддержка скриптования на python и скриптами проще искать проблему бывает.
всегда проще ручками для LD_PRELOAD-а написать костылик.
Не всегда возможно, по этой причине я лично на свой вкус и цвет это вариант как правило избегаю.