Как определить значок запущенной задачи?

В обоих случаях вы получаете неинициализированную память и не можете делать никаких предположений о ее содержимом.

Когда ОС должна выделить новую страницу для вашего процесса (, будь то для своего стека или для арены, используемой malloc()), она гарантирует, что не будет раскрывать данные из других процессов; обычный способ гарантировать это — заполнить его нулями (, но в равной степени можно перезаписать чем-нибудь другим, включая даже страницу стоимостью/dev/urandom-на самом деле, некоторые отладочные malloc()реализации записывают не -нулевые шаблоны, поймать ошибочные предположения, такие как ваше ).

Если malloc()может удовлетворить запрос из памяти, уже использованной и освобожденной этим процессом, ее содержимое не будет очищено (по сути, очистка не имеет отношения к malloc()и не может быть -это должно произойти до того, как память будет отображена в ваше адресное пространство ). Вы можете получить память, которая ранее была записана вашим процессом/программой (, например. передmain()).

В вашей программе-примере вы видите область malloc(), которая еще не была записана этим процессом (, т. е. она непосредственно взята с новой страницы )и стека, который был записан в (. ] с помощью предварительного кода-main()в вашей программе ). Если вы исследуете больше стека, вы обнаружите, что он заполнен нулями -ниже (в направлении роста ).

Если вы действительно хотите понять, что происходит на уровне ОС, я рекомендую вам обойти уровень библиотеки C и вместо этого взаимодействовать с помощью системных вызовов, таких как brk()и mmap().

0
23.05.2020, 12:00
1 ответ

Откройте файл запуска в текстовом редакторе. Найдите строку сIcon

Icon = app_name.

После знака равно пишем путь к нашей иконке

Icon = /home/user/icons/icon.png

Сохраните и перезагрузите Xes или ПК.

0
18.03.2021, 23:33

Теги

Похожие вопросы