- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
// https://github.com/torvalds/linux/blob/b6dad5178ceaf23f369c3711062ce1f2afc33644/rust/alloc/alloc.rs#L376
pub const fn handle_alloc_error(layout: Layout) -> ! {
const fn ct_error(_: Layout) -> ! {
panic!("allocation failed");
}
fn rt_error(layout: Layout) -> ! {
unsafe {
__rust_alloc_error_handler(layout.size(), layout.align());
}
}
unsafe { core::intrinsics::const_eval_select((layout,), ct_error, rt_error) }
}
// https://github.com/torvalds/linux/blob/b6dad5178ceaf23f369c3711062ce1f2afc33644/rust/kernel/lib.rs#L96-L103
fn panic(info: &core::panic::PanicInfo<'_>) -> ! {
pr_emerg!("{}\n", info);
// SAFETY: FFI call.
unsafe { bindings::BUG() };
// Bindgen currently does not recognize `__noreturn` so `BUG` returns `()`
// instead of `!`. See <https://github.com/rust-lang/rust-bindgen/issues/2094>.
loop {}
}
// https://github.com/torvalds/linux/blob/master/include/asm-generic/bug.h#L51-L68
/*
* Don't use BUG() or BUG_ON() unless there's really no way out; one
* example might be detecting data structure corruption in the middle
* of an operation that can't be backed out of. If the (sub)system
* can somehow continue operating, perhaps with reduced functionality,
* it's probably not BUG-worthy.
*
* If you're tempted to BUG(), think again: is completely giving up
* really the *only* solution? There are usually better options, where
* users don't need to reboot ASAP and can mostly shut down cleanly.
*/
#ifndef HAVE_ARCH_BUG
#define BUG() do { \
printk("BUG: failure at %s:%d/%s()!\n", __FILE__, __LINE__, __func__); \
barrier_before_unreachable(); \
panic("BUG!"); \
} while (0)
#endif
О том, как в ядре Linux говнораст обрабатывает ошибку аллокации
j123123 19.06.2023 12:07 # 0
guest6 19.06.2023 12:08 # 0
Переведи на Си. Мы не обязаны знать какой-то "говнораст".
j123123 19.06.2023 12:22 # +1
guest6 19.06.2023 20:49 # 0
j123123 21.06.2023 20:54 # 0
guest6 21.06.2023 21:00 # 0
нул плюс стопицот будет 100500
_PHP_ 22.06.2023 20:41 # 0
ISO 22.06.2023 20:57 # 0
guest6 22.06.2023 21:16 # 0
В современном мире просто не будет такой записи в таблице и тебя пошлет нахуй MMU.
Однако же если мы гойворим про ядро, то тут у патриотов преград нету
ISO 22.06.2023 22:09 # 0
Именно поэтому сегодня по адресу 100500 находится только память текущего процесса, как и по всем остальным адресам от 0 до 18446744073709551615.
В ядре MMU тоже нахуй пошлёт — это превратится в PAGE_FAULT, а дальше в BUGCHECK() (а если у тебя IRQL достаточно высокий — сразу будет синий экран).
guest6 22.06.2023 23:04 # +1
>баг чек
ну мы на прыщах же
``panic()``
OPAHrymaH 22.06.2023 22:45 # 0
Так вот там не было разделения адресных пространств, все приложения запускались в общем пространстве. Из-за этого в Win32s нельзя было запустить программы с отрезанной таблицей релокейшнов. Движок Win32s был вынужден двигать приложения на в известной степени случайный адрес, чтобы адреса программ не пересеклись.
Не знаю, почему так сделали. Может быть, все приложения Win32 API были для Windows 3.1 одним процессом. Я уже не помню, что там выводилось в диспетчере задач.
OPAHrymaH 22.06.2023 22:47 # 0
3a_O6e_Horu 22.06.2023 22:52 # 0
Что-то делал для ВУЗа томущо 16-битная версия числодробительной прикладнухи херово работала, а мастдай еще хуже
guest6 23.06.2023 03:06 # 0
Tike 22.06.2023 20:57 # +1
guest6 22.06.2023 21:35 # 0
• <789电影网>点击下列链接访问
• <789电影网>点击下列链接访问
• <789电影网>点击下列链接访问
• <789电影网>点击下列链接访问
• <789电影网>点击下列链接访问
• <789电影网>点击下列链接访问
• <789电影网>点击下列链接访问
• <789电影网>点击下列链接访问
• <789电影网>点击下列链接访问
• <789电影网>点击下列链接访问
• <789电影网>点击下列链接访问
• <789电影网>点击下列链接访问
guest6 22.06.2023 21:35 # 0
и так, песня
https://www.youtube.com/watch?v=unW7UYXSQNY
3a_O6e_Horu 22.06.2023 22:31 # 0
guest6 23.06.2023 03:39 # 0
Мальчик Боря обманул
Маму, папу, и дядьёв
Боря стал теперь нанул
Боря ловит воробьёв
_PHP_ 22.06.2023 20:36 # 0
3a_O6e_Horu 19.06.2023 14:42 # +1
guest6 19.06.2023 15:32 # +1
3a_O6e_Horu такой забавный
3a_O6e_Horu 19.06.2023 15:52 # +1
guest6 19.06.2023 19:39 # 0
ISO 19.06.2023 19:42 # +2
> unsafe {
> unsafe {
БИЗАПАСНЫЙ ЙАЗЫК!!!!1111
ISO 19.06.2023 19:44 # +3
Является ли эта программа в понимании фанатиков дrustни полностью безопасной и современной (в отличие от бумерских «сишек»)?
guest6 19.06.2023 19:46 # +1
_PHP_ 22.06.2023 20:39 # 0
guest6 22.06.2023 23:06 # 0
guest6 23.06.2023 03:09 # 0
если ты не расист, то должен быть жирным
https://twitter.com/nypost/status/1671225688873893893