Panic button! Crash On Ctrl Scroll

Panic Button su una tastiera

"PANIC!" by Krysten_N is licensed under CC BY-ND 2.0.

Quando Windows si blocca, per dei crash di driver, o non risponde più ai comandi, pur mostrando un feed a video, uno shortcut per creare un dump della memoria può aiutare per trovare la causa dei crash.

Ho sperimentato personalmente questa frustrazione utilizzando OBS, come videocamera virtuale. Ogni tanto quando si avvia, crashano i driver grafici, frezzando il PC, senza generare una schermata blu.

Cercando online le caratteristiche del freeze, non ho trovato molto a riguardo, essendo un problema anomalo, quasi nessuno riesce a capire il motivo o eventualmente la causa senza nemmeno avere un crash dump da analizzare.

Abilitate i Crash Dump

Nelle impostazioni di Windows, in particolare nelle proprietà del sistema, c’è la voce Avvio e ripristino.

Qui è possibile impostare il tipo di dump da effettuare in caso di crash del sistema.

Consiglio il dump completo della memoria per identificare al meglio l’ambiente e le possibili cause di eventuali crash.

Blue Screen Of the Death a comando

Cercando un qualche shortcut che mi permettesse di generare un crash dump della memoria, mi è capitato sotto mano questa funzione di Windows, chiamata CrashOnCtrlScroll.

Grazie a questa funzione è possibile imporre un crash del sistema, generando un crash dump da parte di Windows.

Per attivare questa funzione basterà creare un valore sul registro di Windows a seconda del tipo di tastiera che si vuole utilizzare per il crash.

Aprite RegEdit e andate al percorso relativo alla tastiera:

USB

Porta USB
Evan-Amos, CC0, via Wikimedia Commons
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\kbdhid\Parameters

P2/S

Porta P2/S
Jud McCranie, CC BY-SA 4.0, via Wikimedia Commons
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\i8042prt\Parameters

Hyper-V (PC virtuale o remoto)

OpenClipart, CC0
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\hyperkbd\Parameters

Indifferentemente dalla tastiera scelta e dal percorso del registro scelto, creare un valore DWORD (32 bit) con nome CrashOnCtrlScroll ed impostare il valore a 1 (decimale o hesadecimale è indifferente).

Per i PC portatili, l’interfaccia per la tastiera integrata potrebbe essere la P2/S, come Microsoft consiglia, abilitate sia USB che P2/S per testare con entrambe le tastiere

Una volta impostata la nuova chiave, riavviate il PC.

Per azionare il crash, tenete premuto il tasto CTRL più a destra e premete due volte il tasto blocco scorrimento, o Scroll Lock.

Solitamente sulla tastiera è indicato con “BLOC SCORR” o “Scr Lk”

Cambiare combinazione di tasti per il crash

è possibile cambiare la combinazione di tasti per inizializzare il crash creando 2 valori nel registro.

Di nuovo, in base alla tastiera che si sta utilizzando, è necessario creare prima la chiave crashdump nel percorso scelto:

USB

Porta USB
Evan-Amos, CC0, via Wikimedia Commons
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\kbdhid\crashdump

P2/S

Porta P2/S
Jud McCranie, CC BY-SA 4.0, via Wikimedia Commons
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\i8042prt\crashdump

Hyper-V (PC virtuale o remoto)

OpenClipart, CC0
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\hyperkbd\crashdump

Successivamente servirà creare 2 valori DWORD, Dump1Keys e Dump2Key , che serviranno ad indicare i tasti prescelti per il crash.

Valore Dump1Keys 

Il valore di questo elemento corrisponde a un bit map.

Nei valori bit map, sono importati i bit impostati ad 1 (valore alto), ad esempio una variabile decimale, bit map, uguale a 17 corrisponde in valore binario a 00010001, i bit importanti sono quindi il primo (quello più a destra) e il quinto.

Un programma che utilizza la variabile in esempio, associa ad ogni bit del numero, una funzionalità. Di conseguenza è possibile impostare più funzionalità (bit a 1) utilizzando la stessa variabile.

Sul sito di Microsoft c’è la tabella con i valori del bit map per il valore DWORD Dump1Keys

Ogni bit corrisponde a un tasto della tastiera, l’utilizzo di più bit nel valore comporterà l’abilitazione di più tasti per il primo passo per inizializzazione.

Valore Dump2Keys

Il valore di questo elemento è un numero intero, e corrisponde all’indice di un array. Questo array contiene una serie di numeri corrispondenti a dei layout delle tastiere. Questa parte è poco precisa riguardo l’impatto che ha questo valore sull’inizializzazione del crash.

In ogni caso per impostare questo valore sarà necessario creare un nuovo valore DWORD Dump2Keys e impostare il valore decimale desiderato.

Analizzare un crash dump

Analizzare un crash dump a mano è sicuramente un’impresa difficile poiché comprende una copia della RAM e dei vari programmi in esecuzione quando viene generato.

Per fortuna esistono programmi che permettono di analizzare il file e capire cosa ha generato il blocco del sistema.

Dalla pagina di Microsoft viene suggerito il programma grafico WinDBG, disponibile sullo Store di Microsoft, permette di analizzare processi e crash dump.

Aprendo il programma, si avvierà con la schermata sottostante, tra le opzioni disponibili, è presente “Open dump file”.

Successivamente scegliendo il file dump, presente nel percorso di Windows: C:\Windows\MEMORY.DMP

Si aprirà la schermata di debugging dove sarà possibile impartire comandi al debugger per trovare ed analizzare cosa ha generato il crash.

Non essendo esperto in comandi di WinDBG, vi consiglio di cercare online comandi per trovare l’origine del problema del freeze dello schermo.

ATTENZIONE: Il crash generato, è comunque un crash per Windows. Se analizzate il crash con questo programma, fate attenzione perché come primo comando vi darà !analyze -v, questo vi darà come output Bug check 0xE2: MANUALLY_INITIATED_CRASH, ovvero il processo di Windows che ha generato il crash dump.

About the author

alessandrobasi

Appassionato di informatica, scrivo su argomenti tecnici poco conosciuti su cui vale la pena soffermarsi.

Be the first to comment

Rispondi