内核准备
内核配置
建议从源代码重新编译内核,这样可以更方便地进行源代码级调试;当然自己从发行版官网下载相应内核的调试符号亦可以,通常情况下只用于应急分析,比如crash dump分析等。
自己编译Linux内核的话,最好打开两个选项:
CONFIG_DEBUG_INFO=y
CONFIG_GDB_SCRIPTS=y
可通过make menuconfig来设置内核配置项,分别以5.12及6.1.0为例:
5.12:
6.1.0:

禁止编译优化
无法针对Linux内核禁止全局优化,但可以针对特定的源代码文件做禁止编译优化的处理,可通过以下方式达成:
在需要被调试的源代码文件头部增加下面一行代码:
#pragma GCC optimize ("O0")
或者修改其对应的Makefile,以文件名core.c为例:
CFLAGS_REMOVE_core.o := -O2
CFLAGS_core.o := -O0
镜像准备
建议通过libvirt来管理本地KVM虚拟机,这样使用起来非常方便,如果条件不允许的话亦可用qemu命令行方式来运行。
添加 gdb stub
下面的示例是以命令行方式来运行调试目标:
qemu-system-x86_64 -m 4096 -nographic -net user,hostfwd=tcp::44334-:22 -net nic -hda \
debian-10.7.qcow2 -machine type=pc,accel=kvm -cpu host -smp 4 -gdb tcp:127.0.0.1:44333
“-gdb tcp:127.0.0.1:44333” 就是gdb stub的命令行参数,即gdb可连接localhost:44333来调试目标系统。
如果使用libvirt的话则需要修改QEMU配置,可通过命令virsh edit来进行修改,需要在末尾加上中间4行:
</devices>
<qemu:commandline>
<qemu:arg value='-gdb'/>
<qemu:arg value='tcp:localhost:44333'/>
</qemu:commandline>
</domain>
另外还需要更改虚拟机配置文件的domain type,即将第一行从
<domain type='kvm'>
改为:
<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
修改内核启动项
本步骤主要为了禁止内核地址随机化,不然内核符号无法定位并正确绑定。可通过修改grub项完成,在安装新内核过程中会自加增加nokaslr及nopti,当然在编译内核时亦可直接禁止相应功能亦可。
root@T490:~# cat /etc/default/grub | grep nokaslr
GRUB_CMDLINE_LINUX_DEFAULT="noquiet nopti nokaslr console=ttyS0"
最直接的方式就是直接修改/boot/grub/grub.cfg文件,或者在系统启动时手工编译grub启动项亦可:
root@T490:~# cat /boot/grub/grub.cfg | grep nokaslr
linux /boot/vmlinuz-5.10.14 root=UUID=c4072cd3-9ed9-4376-b85c-95d1306e817b ro noquiet nopti nokaslr console=ttyS0,115200
host端准备
前面我们就完成了guest端即调试目标机的配置,然后就是准备host端,可以用gdb,亦可以用vscode等gui工具,甚至可以用Windows Visual Studio配合VisualKernel工具来调试Linux系统。
源代码及调试符号vmlinux
将相应源代码及调试符号vmlinux复制到host端即可,复制时注意软链接问题,比如:
vmlinux-gdb.py -> /BUILD/linux-5.12/scripts/gdb/vmlinux-gdb.py
设置gdb的auto-load路径
建议直接修改 ~/.gdbinit文件,当然手动执行亦可,当处理多个调试机时最好通过.gdbinit来保存配置:
matt@T490 /W/K/debian-10.7> cat ~/.gdbinit
add-auto-load-safe-path /usr/share/gdb/python/gdb/
add-auto-load-safe-path /usr/share/gdb/python/
add-auto-load-safe-path /usr/share/gdb/
add-auto-load-safe-path /BUILD/linux-5.12
set auto-load python-scripts on
source /BUILD/pwndbg/gdbinit.py
我本地的调试环境里安装的是pwndbg,已配置好了python组件
启动gdb
cd /BUILD/linux-5.12; gdb ./vmlinux
在gdb中执行以下执行开启内核调试:
target remote :44333
然后gdb会自动加载pwndbg并中断目标机:

在内核gdb scripts加载成功的情况下可以执行lx系列扩展命令以获取内核信息:

可通过apropos lx查询相应的gdb scripts扩展命令,如lx-lsmod, 变量:$lx_current():
gdb> apropos lx
function lx_clk_core_lookup -- Find struct clk_core by name
function lx_current -- Return current task.
function lx_device_find_by_bus_name -- Find struct device by bus and name (both strings)
function lx_device_find_by_class_name -- Find struct device by class and name (both strings)
function lx_module -- Find module by name and return the module variable.
function lx_per_cpu -- Return per-cpu variable.
function lx_rb_first -- Lookup and return a node from an RBTree
function lx_rb_last -- Lookup and return a node from an RBTree.
function lx_rb_next -- Lookup and return a node from an RBTree.
function lx_rb_prev -- Lookup and return a node from an RBTree.
function lx_task_by_pid -- Find Linux task by PID and return the task_struct variable.
function lx_thread_info -- Calculate Linux thread_info from task variable.
function lx_thread_info_by_pid -- Calculate Linux thread_info from task variable found by pid
lx-clk-summary -- Print clk tree summary
lx-cmdline -- Report the Linux Commandline used in the current kernel.
lx-configdump -- Output kernel config to the filename specified as the command
lx-cpus -- List CPU status arrays
lx-device-list-bus -- Print devices on a bus (or all buses if not specified)
lx-device-list-class -- Print devices in a class (or all classes if not specified)
lx-device-list-tree -- Print a device and its children recursively
lx-dmesg -- Print Linux kernel log buffer.
lx-fdtdump -- Output Flattened Device Tree header and dump FDT blob to the filename
lx-genpd-summary -- Print genpd summary
lx-iomem -- Identify the IO memory resource locations defined by the kernel
lx-ioports -- Identify the IO port resource locations defined by the kernel
lx-list-check -- Verify a list consistency
lx-lsmod -- List currently loaded modules.
lx-mounts -- Report the VFS mounts of the current process namespace.
lx-ps -- Dump Linux tasks.
lx-symbols -- (Re-)load symbols of Linux kernel and currently loaded modules.
lx-timerlist -- Print /proc/timer_list
lx-version -- Report the Linux Version of the current kernel.

gdb常用命令及调试技巧
常用命令
常用gdb指令:bt, disass, step, next, break/delete, print, x/[i/g/d]等,具体可查询gdb命令手册
断点设置
使用break命令可设置断点,支持以下几种命令格式:
- break 函数名: break dump_stack
- break source_file:line_number: break smith_hook.c:70
- break 逻辑地址:break 0xffffffff81003010,可以强制break跳过符号/函数名识别
针对模块的调试,可以考虑在模块中增加不常用内核函数的调用,如dump_stack;模块加载前是无法设置断点的,但内核函数的调用是可以的,这样就可以在模块调用指定内核函数时触发断点,然后再通过add-symbol-file /path_to/ko_file base_address,base_address或通过lx-lsmod查询得到,即模块在内核中的内存位置,之后就可以访问模块内的符号了,如全局变量或内部函数
X86_64位环境调试32位虚拟机
需要在attach前设置目标及当前系统架构,如 set architecture i386:x86-64。建议安装gdb-multiarch,以免系统自带gdb不支持多种架构:
pwndbg> target remote :44323
Remote debugging using :44323
warning: Selected architecture i386 is not compatible with reported target architecture i386:x86-64
warning: Architecture rejected target-supplied description
Remote 'g' packet reply is too long (expected 312 bytes, got 608 bytes): 102b91c10......0000
pwndbg> set architecture i386:x86-64
The target architecture is set to "i386:x86-64".
pwndbg> target remote :44323
Remote debugging using :44323
0x00000000c1912b23 in default_idle () at arch/x86/kernel
Некоторые состояния требуют немедленного вмешательства нарколога, так как отказ от лечения может привести к тяжелым осложнениям и риску для жизни.
Подробнее – https://narcolog-na-dom-novokuznetsk00.ru/narkolog-lechenie-na-domu-novokuzneczk
Just want to say your article is as amazing. The clarity in your post is just cool and i can assume you are an expert on this subject. Well with your permission let me to grab your RSS feed to keep updated with forthcoming post. Thanks a million and please keep up the gratifying work.
casino sans wager
Why users still make use of to read news papers when in this technological globe everything is existing on web?
casino en ligne sans wager
Wow, superb weblog structure! How long have you been blogging for? you made running a blog look easy. The full look of your website is fantastic, as well as the content material!
paysafecard casino bonus
Hello there, You have done a fantastic job. I will definitely digg it and personally suggest to my friends. I’m confident they will be benefited from this website.
paysafecard casino bonus
This site definitely has all the info I wanted about this subject and didn’t know who to ask.
paysafecard casino bonus
I absolutely love your blog and find many of your post’s to be what precisely I’m looking for. Does one offer guest writers to write content to suit your needs? I wouldn’t mind composing a post or elaborating on a lot of the subjects you write regarding here. Again, awesome web log!
beste casino mit paysafecard
Nice post. I learn something new and challenging on websites I stumbleupon everyday. It’s always interesting to read through articles from other writers and practice a little something from their websites.
online casino mit paysafe
Эффективная капельница должна включать несколько компонентов, каждый из которых направлен на решение конкретной задачи: выведение токсинов, восстановление функций организма, нормализация психоэмоционального состояния.
Углубиться в тему – капельница от запоя анонимно на дому первоуральск
Клиника «ТоксинНет» предлагает профессиональную помощь при алкогольной зависимости и запоях в Нижнем Новгороде. Наши опытные наркологи круглосуточно выезжают на дом для оказания экстренной медицинской помощи. Основным методом лечения является капельница от запоя, которая позволяет оперативно снять интоксикацию и стабилизировать общее состояние пациента. Мы обеспечиваем конфиденциальность, индивидуальный подход и высокий уровень безопасности процедур.
Детальнее – https://kapelnica-ot-zapoya-nizhniy-novgorod0.ru/kapelnicza-ot-zapoya-na-domu-nizhnij-novgorod/
Thank you for the good writeup. It in reality used to be a leisure account it. Look complicated to far introduced agreeable from you! However, how can we be in contact?
bonus sans wager
WOW just what I was looking for. Came here by searching for %keyword%
meilleur casino en ligne sans wager
I got this web site from my friend who shared with me concerning this web site and now this time I am browsing this web page and reading very informative articles at this time.
meilleur casino en ligne sans wager
Демо-игры без регистрации
DON8PLAY
Hi, I wish for to subscribe for this webpage to get most recent updates, so where can i do it please help out.
บาคาร่า
Hello to all, how is the whole thing, I think every one is getting more from this site, and your views are fastidious in support of new viewers.
บาคาร่า
Thank you for sharing your thoughts. I really appreciate your efforts and I am waiting for your next write ups thanks once again.
บาคาร่า
Why visitors still make use of to read news papers when in this technological world everything is existing on web?
https://www.google.com.ly/maps/d/edit?mid=1jTaHqaYfD4Q_Bj8x2HPglHvrvV22JGo
This page truly has all the info I needed concerning this subject and didn’t know who to ask.
https://www.google.bi/maps/d/edit?mid=1dqfCwH5twBp0040gOQYJErpsjHgHvkA
This is really interesting, You’re a very skilled blogger. I have joined your feed and look forward to seeking more of your fantastic post. Also, I have shared your website in my social networks!
https://www.google.gl/maps/d/edit?mid=1hNv1zf-gVrn31TyfWIM1w4TsTpLOLNY
Hi to every one, the contents present at this web page are in fact amazing for people knowledge, well, keep up the good work fellows.
https://www.google.com.sb/maps/d/edit?mid=14p_6s8VnMsJIouppT4bdwxDA-aeUKys
Hi, I want to subscribe for this website to get latest updates, therefore where can i do it please assist.
https://www.google.ca/maps/d/edit?mid=1qKzn24d91_4Uw1pc1QACu4e4h0XBjBw
Casino in South Africa Casino in South Africa
Online Casinos Casino in South Africa
Best Online Casino Casino in South Africa
What’s up to all, how is all, I think every one is getting more from this web page, and your views are fastidious in favor of new viewers.
https://vwclub.org.ua/chym-kleyity-fary-avtomobilya-pislya-zaminy-skla-p.html
TOP-10 Online Casinos Casino in South Africa
I got this web site from my friend who shared with me regarding this website and at the moment this time I am visiting this web page and reading very informative content here.
https://dnmagazine.com.ua/analiz-spektru-chomu-svitlo-5500k-vvazhayetsya-zol.html
Hey I know this is off topic but I was wondering if you knew of any widgets I could add to my blog that automatically tweet my newest twitter updates. I’ve been looking for a plug-in like this for quite some time and was hoping maybe you would have some experience with something like this. Please let me know if you run into anything. I truly enjoy reading your blog and I look forward to your new updates.
https://metabo-partner.com.ua/lexus-is-gs-vidnovlennya-kryshtalevoho.html
Hello to all, how is everything, I think every one is getting more from this web site, and your views are fastidious designed for new viewers.
https://ostercenter.com.ua/profesiine-vstanovlennya-linz-v-fary.html
Best Online Casino in South Africa Casino in South Africa
https://luminous-blog.co.za Casino in South Africa
Для наглядности представлена таблица с основными этапами лечения и их характеристиками:
Углубиться в тему – наркологическая клиника лечение алкоголизма в ростове-на-дону
Когда запой превращается в угрозу для жизни, оперативное вмешательство становится критически важным. В Тюмени, Тюменская область, опытные наркологи предлагают услугу установки капельницы от запоя прямо на дому. Такой метод позволяет начать детоксикацию с использованием современных медикаментов, что способствует быстрому выведению токсинов, восстановлению обменных процессов и нормализации работы внутренних органов. Лечение на дому обеспечивает комфортную обстановку, полную конфиденциальность и индивидуальный подход к каждому пациенту.
Углубиться в тему – http://kapelnica-ot-zapoya-tyumen00.ru
Основная цель — быстрое и безопасное выведение этанола и его токсических метаболитов из организма, восстановление водно-электролитного и кислотно-щелочного баланса, нормализация артериального давления, работы сердца, почек и головного мозга. Для этого применяется инфузионная терапия, фармакологическая коррекция, витаминотерапия и, при необходимости, седативная поддержка.
Получить дополнительную информацию – http://www.domen.ru
Тренды игровой индустрии
https://www.don8play.ru/
I blog frequently and I genuinely thank you for your content. Your article has truly peaked my interest. I’m going to take a note of your site and keep checking for new information about once a week. I subscribed to your RSS feed too.
https://merlins.com.ua/rivian-r1s-r1t-tyuninh-unikalnykh-ovalnykh-far-za.html
Hello there! Do you know if they make any plugins to safeguard against hackers? I’m kinda paranoid about losing everything I’ve worked hard on. Any suggestions?
https://abshop.com.ua/24v-vs-12v-fizyka-udaru-chomu-zvychaini.html
Hi there to all, because I am actually eager of reading this blog’s post to be updated regularly. It includes nice information.
https://hr.com.ua/chym-kleyity-sklo-fary-peugeot-pislya-zaminy-ta-ch.html
What’s up, this weekend is nice in support of me, as this time i am reading this great informative article here at my house.
https://stroy-remont.ks.ua/hermetyk-dlya-far-pislya-dtp-yak-vidnovyty.html
Hey there, I think your website might be having browser compatibility issues. When I look at your blog site in Firefox, it looks fine but when opening in Internet Explorer, it has some overlapping. I just wanted to give you a quick heads up! Other then that, fantastic blog!
https://svitozar.com.ua/styl-ta-svitlo-yak-pofarbuvaty-masky-far-suzuki-v.html
В нашей клинике “Сила воли” в Иркутске вы можете получить помощь как в стационаре, так и на дому. Мы предлагаем два вида услуг:
Разобраться лучше – после капельницы от запоя в иркутске
Для жителей Ростова-на-Дону клиника «Южный МедКонтроль» предлагает два формата помощи: лечение в стационаре и амбулаторные визиты врача на дом. Стационар оборудован всем необходимым для круглосуточного медицинского наблюдения, проведения инфузионных процедур и лабораторной диагностики. Пациентам предоставляется комфортное размещение, спокойная обстановка и постоянный контроль состояния. При выезде на дом врачи действуют оперативно — приезжают в течение часа, проводят осмотр, устанавливают капельницы, купируют абстиненцию и дают рекомендации по дальнейшему лечению.
Ознакомиться с деталями – http://narkologicheskaya-clinika-v-rostove19.ru/narkologiya-rostov-kruglosutochno/https://narkologicheskaya-clinika-v-rostove19.ru
Алкогольная и наркотическая зависимость требуют незамедлительного и комплексного вмешательства для предотвращения серьезных осложнений и сохранения здоровья пациента. В Уфе, Республика Башкортостан, опытные наркологи выезжают на дом 24 часа в сутки, предоставляя оперативную помощь при запоях и в случаях наркотической интоксикации. Такой формат лечения позволяет начать детоксикацию в комфортной, привычной обстановке, обеспечивая максимальную конфиденциальность и индивидуальный подход к каждому пациенту.
Подробнее можно узнать тут – вызвать нарколога на дом срочно в уфе
В «Южном МедКонтроле» лечение зависимостей строится поэтапно, с постепенным восстановлением физиологических функций и эмоциональной устойчивости. Врачи используют современные методы детоксикации, фармакотерапию и психотерапию, которые действуют комплексно. Каждый этап направлен на достижение конкретного результата: очищение организма, снятие симптомов абстиненции, стабилизацию состояния и профилактику срывов.
Изучить вопрос глубже – наркологическая клиника нарколог ростов-на-дону
Первым этапом лечения является медицинская детоксикация, которая направлена на удаление токсинов из организма и стабилизацию физического состояния пациента. Мы используем современные методики, которые помогают минимизировать симптомы абстиненции, такие как головная боль, тошнота и слабость, обеспечивая комфортное пребывание в клинике.
Подробнее можно узнать тут – https://kapelnica-ot-zapoya-irkutsk2.ru/kapelnica-ot-zapoya-anonimno-v-irkutske
Эти действия помогают быстро восстановить водно-электролитный баланс и снизить нагрузку на внутренние органы. После проведения процедур врач дает рекомендации по дальнейшему наблюдению и реабилитации.
Узнать больше – вызвать нарколога на дом срочно калининград
Вывод из запоя показан при:
Получить дополнительную информацию – вывод из запоя анонимно мурманск
Миссия клиники “Обновление” заключается в предоставлении качественной и всесторонней помощи людям, страдающим от различных форм зависимости. Мы понимаем, что успешное лечение невозможно без индивидуального подхода, поэтому каждый пациент проходит детальную диагностику, после которой разрабатывается персонализированный план терапии. В процессе работы мы акцентируем внимание на следующих аспектах:
Получить дополнительную информацию – https://kapelnica-ot-zapoya-irkutsk.ru/
Реабилитация 12 шагов в Москве с последовательной программой восстановления, участием специалистов и поддержкой на каждом этапе в наркологической клинике «Триумф».
Получить больше информации – 12 шагов программа онлайн