What happens whenever there is a segfault in linuxchroot segfaultLinux dmesg errors, motherboard issue?newusers causes segfaultIs there a way to temporarily disable segfault messages in dmesg?How does a Segmentation Fault work under-the-hood?Kernel Oops causing system crash when playing game - nvidia driversDebugging a suspend to ram issue with PM_TRACEDoes hypercall take the same time as a linux system call?How is memory corruption handled by Linux when the process terminates?NetworkManager - segfault

Definition of Newton's first law

Why did the ICC decide not to probe alleged US atrocities in Afghanistan?

Make all the squares explode

Light Switch Terminals

How can this pool heater gas line be disconnected?

Why not just directly invest in the holdings of an ETF?

On what legal basis did the UK remove the 'European Union' from its passport?

Extracting sublists that contain similar elements

Exception propagation: When should I catch exceptions?

Can 'sudo apt-get remove [write]' destroy my Ubuntu?

What does "Ich wusste, dass aus dir mal was wird" mean?

Early arrival in Australia, early hotel check in not available

Size of a folder with du

Does Lawful Interception of 4G / the proposed 5G provide a back door for hackers as well?

Does kinetic energy warp spacetime?

Why is “Ich wusste, dass aus dir mal was wird” grammitally correct?

Do atomic orbitals "pulse" in time?

tikz: not so precise graphic

Extrude the faces of a cube symmetrically along XYZ

How to cope with regret and shame about not fully utilizing opportunities during PhD?

How did Thanos not realise this had happened at the end of Endgame?

Plastic-on-plastic lubricant that wont leave a residue?

Create a list of all possible Boolean configurations of three constraints

What is Plautus’s pun about frustum and frustrum?



What happens whenever there is a segfault in linux


chroot segfaultLinux dmesg errors, motherboard issue?newusers causes segfaultIs there a way to temporarily disable segfault messages in dmesg?How does a Segmentation Fault work under-the-hood?Kernel Oops causing system crash when playing game - nvidia driversDebugging a suspend to ram issue with PM_TRACEDoes hypercall take the same time as a linux system call?How is memory corruption handled by Linux when the process terminates?NetworkManager - segfault






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








2















What are the steps that the Linux kernel does whenever the hardware raises segfault. Right now I know that through the IDT, the fault handler handles it, and somewhere along the road there is a message in the kern.log (dmesg) about the fault.



I am asking this question because I am developing an hypervisor, and whenever there is a segfault in user space (which should`nt crash the system), the system crashes (the crash happens only after the message in the kern.log). So if I could retrace what the kernel does whenever it encounters segfault it will help me a lot.










share|improve this question
























  • Does you hypervisor run on Linux, or is Linux the guest system? What exactly crashes?

    – RalfFriedl
    May 2 at 4:59











  • @RalfFriedl it's a thin hypervisor, so it runs from Linux and make it the guest. The whole setup runs on VMware player, and the whole setup crashes. So somehow the segfault make the hypervisor enters a buggy state, that's why I want to understand what's the process of segfault.

    – dmg
    May 2 at 5:10


















2















What are the steps that the Linux kernel does whenever the hardware raises segfault. Right now I know that through the IDT, the fault handler handles it, and somewhere along the road there is a message in the kern.log (dmesg) about the fault.



I am asking this question because I am developing an hypervisor, and whenever there is a segfault in user space (which should`nt crash the system), the system crashes (the crash happens only after the message in the kern.log). So if I could retrace what the kernel does whenever it encounters segfault it will help me a lot.










share|improve this question
























  • Does you hypervisor run on Linux, or is Linux the guest system? What exactly crashes?

    – RalfFriedl
    May 2 at 4:59











  • @RalfFriedl it's a thin hypervisor, so it runs from Linux and make it the guest. The whole setup runs on VMware player, and the whole setup crashes. So somehow the segfault make the hypervisor enters a buggy state, that's why I want to understand what's the process of segfault.

    – dmg
    May 2 at 5:10














2












2








2








What are the steps that the Linux kernel does whenever the hardware raises segfault. Right now I know that through the IDT, the fault handler handles it, and somewhere along the road there is a message in the kern.log (dmesg) about the fault.



I am asking this question because I am developing an hypervisor, and whenever there is a segfault in user space (which should`nt crash the system), the system crashes (the crash happens only after the message in the kern.log). So if I could retrace what the kernel does whenever it encounters segfault it will help me a lot.










share|improve this question
















What are the steps that the Linux kernel does whenever the hardware raises segfault. Right now I know that through the IDT, the fault handler handles it, and somewhere along the road there is a message in the kern.log (dmesg) about the fault.



I am asking this question because I am developing an hypervisor, and whenever there is a segfault in user space (which should`nt crash the system), the system crashes (the crash happens only after the message in the kern.log). So if I could retrace what the kernel does whenever it encounters segfault it will help me a lot.







linux linux-kernel x86 segmentation-fault






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited May 2 at 11:01









sourcejedi

27.1k446120




27.1k446120










asked May 2 at 4:30









dmgdmg

163




163












  • Does you hypervisor run on Linux, or is Linux the guest system? What exactly crashes?

    – RalfFriedl
    May 2 at 4:59











  • @RalfFriedl it's a thin hypervisor, so it runs from Linux and make it the guest. The whole setup runs on VMware player, and the whole setup crashes. So somehow the segfault make the hypervisor enters a buggy state, that's why I want to understand what's the process of segfault.

    – dmg
    May 2 at 5:10


















  • Does you hypervisor run on Linux, or is Linux the guest system? What exactly crashes?

    – RalfFriedl
    May 2 at 4:59











  • @RalfFriedl it's a thin hypervisor, so it runs from Linux and make it the guest. The whole setup runs on VMware player, and the whole setup crashes. So somehow the segfault make the hypervisor enters a buggy state, that's why I want to understand what's the process of segfault.

    – dmg
    May 2 at 5:10

















Does you hypervisor run on Linux, or is Linux the guest system? What exactly crashes?

– RalfFriedl
May 2 at 4:59





Does you hypervisor run on Linux, or is Linux the guest system? What exactly crashes?

– RalfFriedl
May 2 at 4:59













@RalfFriedl it's a thin hypervisor, so it runs from Linux and make it the guest. The whole setup runs on VMware player, and the whole setup crashes. So somehow the segfault make the hypervisor enters a buggy state, that's why I want to understand what's the process of segfault.

– dmg
May 2 at 5:10






@RalfFriedl it's a thin hypervisor, so it runs from Linux and make it the guest. The whole setup runs on VMware player, and the whole setup crashes. So somehow the segfault make the hypervisor enters a buggy state, that's why I want to understand what's the process of segfault.

– dmg
May 2 at 5:10











2 Answers
2






active

oldest

votes


















2















  1. arch/x86/kernel/idt.c:152 - page_fault is used in the IDT


  2. arch/x86/entry/entry_64.S:1143 - page_fault is defined as a wrapper function for do_page_fault(), implemented using the macro idtentry


  3. arch/x86/entry/entry_64.S:847 - idtentry macro


  4. arch/x86/mm/fault.c:1562 - do_page_fault()

Once you reach do_page_fault(), you should see clickable links to navigate the rest of the code. You can't do that for these first four steps, because Elixir doesn't understand the macro magic. It also doesn't understand assembly.



If you need to look at any other traps, some of the other handler functions (do_*) are in turn defined by another macro, x86/kernel/traps.c:281 DO_ERROR().



The function that logs the segfault message is also in fault.c: show_signal_msg(). A little freebie for you. Elixir doesn't allow searching for strings in general, only identifiers. GitHub also shut down their code search. In any case it's hard to search for this message format string without actually downloading the source code, because "%s%s[%d]: segfault at %lx ip %px sp %px error %lx" does not contain a lot of specific words or phrases :-).



The above links are to specific line numbers of the v5.0 source code. Using Elixir, which I really like :-).






share|improve this answer




















  • 1





    The question doesn't mention Elixir at all though?

    – Will
    May 2 at 10:58











  • @Will but I like it, and this answer says you need to click through the links anyway, which will tell you what Elixir is :-). A bit of suspense for you.

    – sourcejedi
    May 2 at 10:59



















1














The user space is managed and run by the kernel, and thus if a kernel level segfault occur inside the user space it will affect the kernel.



Each system will behave differently according to the log setup, the kernel setup and whether it's using systemd or not (but dmesg is commonly the main debugging/log location)



In your particular situation if you know what process generate the segfault you use strace or gdb appname to debug the problematic process.



https://wiki.archlinux.org/index.php/Step-by-step_debugging_guide this guide have more details about how to debug a segfault






share|improve this answer























  • As I staated the seg fault occurs at the user space, and I actually raise it on purpose. The thing I am trying to debug is how the default crashes the system through error in a different part of my code, aka the hypervisor. That's why I try to understand what Linux do when segfault .

    – dmg
    May 2 at 14:58











Your Answer








StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "106"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f516676%2fwhat-happens-whenever-there-is-a-segfault-in-linux%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























2 Answers
2






active

oldest

votes








2 Answers
2






active

oldest

votes









active

oldest

votes






active

oldest

votes









2















  1. arch/x86/kernel/idt.c:152 - page_fault is used in the IDT


  2. arch/x86/entry/entry_64.S:1143 - page_fault is defined as a wrapper function for do_page_fault(), implemented using the macro idtentry


  3. arch/x86/entry/entry_64.S:847 - idtentry macro


  4. arch/x86/mm/fault.c:1562 - do_page_fault()

Once you reach do_page_fault(), you should see clickable links to navigate the rest of the code. You can't do that for these first four steps, because Elixir doesn't understand the macro magic. It also doesn't understand assembly.



If you need to look at any other traps, some of the other handler functions (do_*) are in turn defined by another macro, x86/kernel/traps.c:281 DO_ERROR().



The function that logs the segfault message is also in fault.c: show_signal_msg(). A little freebie for you. Elixir doesn't allow searching for strings in general, only identifiers. GitHub also shut down their code search. In any case it's hard to search for this message format string without actually downloading the source code, because "%s%s[%d]: segfault at %lx ip %px sp %px error %lx" does not contain a lot of specific words or phrases :-).



The above links are to specific line numbers of the v5.0 source code. Using Elixir, which I really like :-).






share|improve this answer




















  • 1





    The question doesn't mention Elixir at all though?

    – Will
    May 2 at 10:58











  • @Will but I like it, and this answer says you need to click through the links anyway, which will tell you what Elixir is :-). A bit of suspense for you.

    – sourcejedi
    May 2 at 10:59
















2















  1. arch/x86/kernel/idt.c:152 - page_fault is used in the IDT


  2. arch/x86/entry/entry_64.S:1143 - page_fault is defined as a wrapper function for do_page_fault(), implemented using the macro idtentry


  3. arch/x86/entry/entry_64.S:847 - idtentry macro


  4. arch/x86/mm/fault.c:1562 - do_page_fault()

Once you reach do_page_fault(), you should see clickable links to navigate the rest of the code. You can't do that for these first four steps, because Elixir doesn't understand the macro magic. It also doesn't understand assembly.



If you need to look at any other traps, some of the other handler functions (do_*) are in turn defined by another macro, x86/kernel/traps.c:281 DO_ERROR().



The function that logs the segfault message is also in fault.c: show_signal_msg(). A little freebie for you. Elixir doesn't allow searching for strings in general, only identifiers. GitHub also shut down their code search. In any case it's hard to search for this message format string without actually downloading the source code, because "%s%s[%d]: segfault at %lx ip %px sp %px error %lx" does not contain a lot of specific words or phrases :-).



The above links are to specific line numbers of the v5.0 source code. Using Elixir, which I really like :-).






share|improve this answer




















  • 1





    The question doesn't mention Elixir at all though?

    – Will
    May 2 at 10:58











  • @Will but I like it, and this answer says you need to click through the links anyway, which will tell you what Elixir is :-). A bit of suspense for you.

    – sourcejedi
    May 2 at 10:59














2












2








2








  1. arch/x86/kernel/idt.c:152 - page_fault is used in the IDT


  2. arch/x86/entry/entry_64.S:1143 - page_fault is defined as a wrapper function for do_page_fault(), implemented using the macro idtentry


  3. arch/x86/entry/entry_64.S:847 - idtentry macro


  4. arch/x86/mm/fault.c:1562 - do_page_fault()

Once you reach do_page_fault(), you should see clickable links to navigate the rest of the code. You can't do that for these first four steps, because Elixir doesn't understand the macro magic. It also doesn't understand assembly.



If you need to look at any other traps, some of the other handler functions (do_*) are in turn defined by another macro, x86/kernel/traps.c:281 DO_ERROR().



The function that logs the segfault message is also in fault.c: show_signal_msg(). A little freebie for you. Elixir doesn't allow searching for strings in general, only identifiers. GitHub also shut down their code search. In any case it's hard to search for this message format string without actually downloading the source code, because "%s%s[%d]: segfault at %lx ip %px sp %px error %lx" does not contain a lot of specific words or phrases :-).



The above links are to specific line numbers of the v5.0 source code. Using Elixir, which I really like :-).






share|improve this answer
















  1. arch/x86/kernel/idt.c:152 - page_fault is used in the IDT


  2. arch/x86/entry/entry_64.S:1143 - page_fault is defined as a wrapper function for do_page_fault(), implemented using the macro idtentry


  3. arch/x86/entry/entry_64.S:847 - idtentry macro


  4. arch/x86/mm/fault.c:1562 - do_page_fault()

Once you reach do_page_fault(), you should see clickable links to navigate the rest of the code. You can't do that for these first four steps, because Elixir doesn't understand the macro magic. It also doesn't understand assembly.



If you need to look at any other traps, some of the other handler functions (do_*) are in turn defined by another macro, x86/kernel/traps.c:281 DO_ERROR().



The function that logs the segfault message is also in fault.c: show_signal_msg(). A little freebie for you. Elixir doesn't allow searching for strings in general, only identifiers. GitHub also shut down their code search. In any case it's hard to search for this message format string without actually downloading the source code, because "%s%s[%d]: segfault at %lx ip %px sp %px error %lx" does not contain a lot of specific words or phrases :-).



The above links are to specific line numbers of the v5.0 source code. Using Elixir, which I really like :-).







share|improve this answer














share|improve this answer



share|improve this answer








edited May 2 at 15:09

























answered May 2 at 10:27









sourcejedisourcejedi

27.1k446120




27.1k446120







  • 1





    The question doesn't mention Elixir at all though?

    – Will
    May 2 at 10:58











  • @Will but I like it, and this answer says you need to click through the links anyway, which will tell you what Elixir is :-). A bit of suspense for you.

    – sourcejedi
    May 2 at 10:59













  • 1





    The question doesn't mention Elixir at all though?

    – Will
    May 2 at 10:58











  • @Will but I like it, and this answer says you need to click through the links anyway, which will tell you what Elixir is :-). A bit of suspense for you.

    – sourcejedi
    May 2 at 10:59








1




1





The question doesn't mention Elixir at all though?

– Will
May 2 at 10:58





The question doesn't mention Elixir at all though?

– Will
May 2 at 10:58













@Will but I like it, and this answer says you need to click through the links anyway, which will tell you what Elixir is :-). A bit of suspense for you.

– sourcejedi
May 2 at 10:59






@Will but I like it, and this answer says you need to click through the links anyway, which will tell you what Elixir is :-). A bit of suspense for you.

– sourcejedi
May 2 at 10:59














1














The user space is managed and run by the kernel, and thus if a kernel level segfault occur inside the user space it will affect the kernel.



Each system will behave differently according to the log setup, the kernel setup and whether it's using systemd or not (but dmesg is commonly the main debugging/log location)



In your particular situation if you know what process generate the segfault you use strace or gdb appname to debug the problematic process.



https://wiki.archlinux.org/index.php/Step-by-step_debugging_guide this guide have more details about how to debug a segfault






share|improve this answer























  • As I staated the seg fault occurs at the user space, and I actually raise it on purpose. The thing I am trying to debug is how the default crashes the system through error in a different part of my code, aka the hypervisor. That's why I try to understand what Linux do when segfault .

    – dmg
    May 2 at 14:58















1














The user space is managed and run by the kernel, and thus if a kernel level segfault occur inside the user space it will affect the kernel.



Each system will behave differently according to the log setup, the kernel setup and whether it's using systemd or not (but dmesg is commonly the main debugging/log location)



In your particular situation if you know what process generate the segfault you use strace or gdb appname to debug the problematic process.



https://wiki.archlinux.org/index.php/Step-by-step_debugging_guide this guide have more details about how to debug a segfault






share|improve this answer























  • As I staated the seg fault occurs at the user space, and I actually raise it on purpose. The thing I am trying to debug is how the default crashes the system through error in a different part of my code, aka the hypervisor. That's why I try to understand what Linux do when segfault .

    – dmg
    May 2 at 14:58













1












1








1







The user space is managed and run by the kernel, and thus if a kernel level segfault occur inside the user space it will affect the kernel.



Each system will behave differently according to the log setup, the kernel setup and whether it's using systemd or not (but dmesg is commonly the main debugging/log location)



In your particular situation if you know what process generate the segfault you use strace or gdb appname to debug the problematic process.



https://wiki.archlinux.org/index.php/Step-by-step_debugging_guide this guide have more details about how to debug a segfault






share|improve this answer













The user space is managed and run by the kernel, and thus if a kernel level segfault occur inside the user space it will affect the kernel.



Each system will behave differently according to the log setup, the kernel setup and whether it's using systemd or not (but dmesg is commonly the main debugging/log location)



In your particular situation if you know what process generate the segfault you use strace or gdb appname to debug the problematic process.



https://wiki.archlinux.org/index.php/Step-by-step_debugging_guide this guide have more details about how to debug a segfault







share|improve this answer












share|improve this answer



share|improve this answer










answered May 2 at 9:17









tiff4455 tiff4455

213




213












  • As I staated the seg fault occurs at the user space, and I actually raise it on purpose. The thing I am trying to debug is how the default crashes the system through error in a different part of my code, aka the hypervisor. That's why I try to understand what Linux do when segfault .

    – dmg
    May 2 at 14:58

















  • As I staated the seg fault occurs at the user space, and I actually raise it on purpose. The thing I am trying to debug is how the default crashes the system through error in a different part of my code, aka the hypervisor. That's why I try to understand what Linux do when segfault .

    – dmg
    May 2 at 14:58
















As I staated the seg fault occurs at the user space, and I actually raise it on purpose. The thing I am trying to debug is how the default crashes the system through error in a different part of my code, aka the hypervisor. That's why I try to understand what Linux do when segfault .

– dmg
May 2 at 14:58





As I staated the seg fault occurs at the user space, and I actually raise it on purpose. The thing I am trying to debug is how the default crashes the system through error in a different part of my code, aka the hypervisor. That's why I try to understand what Linux do when segfault .

– dmg
May 2 at 14:58

















draft saved

draft discarded
















































Thanks for contributing an answer to Unix & Linux Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f516676%2fwhat-happens-whenever-there-is-a-segfault-in-linux%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Club Baloncesto Breogán Índice Historia | Pavillón | Nome | O Breogán na cultura popular | Xogadores | Adestradores | Presidentes | Palmarés | Historial | Líderes | Notas | Véxase tamén | Menú de navegacióncbbreogan.galCadroGuía oficial da ACB 2009-10, páxina 201Guía oficial ACB 1992, páxina 183. Editorial DB.É de 6.500 espectadores sentados axeitándose á última normativa"Estudiantes Junior, entre as mellores canteiras"o orixinalHemeroteca El Mundo Deportivo, 16 setembro de 1970, páxina 12Historia do BreogánAlfredo Pérez, o último canoneiroHistoria C.B. BreogánHemeroteca de El Mundo DeportivoJimmy Wright, norteamericano do Breogán deixará Lugo por ameazas de morteResultados de Breogán en 1986-87Resultados de Breogán en 1990-91Ficha de Velimir Perasović en acb.comResultados de Breogán en 1994-95Breogán arrasa al Barça. "El Mundo Deportivo", 27 de setembro de 1999, páxina 58CB Breogán - FC BarcelonaA FEB invita a participar nunha nova Liga EuropeaCharlie Bell na prensa estatalMáximos anotadores 2005Tempada 2005-06 : Tódolos Xogadores da Xornada""Non quero pensar nunha man negra, mais pregúntome que está a pasar""o orixinalRaúl López, orgulloso dos xogadores, presume da boa saúde económica do BreogánJulio González confirma que cesa como presidente del BreogánHomenaxe a Lisardo GómezA tempada do rexurdimento celesteEntrevista a Lisardo GómezEl COB dinamita el Pazo para forzar el quinto (69-73)Cafés Candelas, patrocinador del CB Breogán"Suso Lázare, novo presidente do Breogán"o orixinalCafés Candelas Breogán firma el mayor triunfo de la historiaEl Breogán realizará 17 homenajes por su cincuenta aniversario"O Breogán honra ao seu fundador e primeiro presidente"o orixinalMiguel Giao recibiu a homenaxe do PazoHomenaxe aos primeiros gladiadores celestesO home que nos amosa como ver o Breo co corazónTita Franco será homenaxeada polos #50anosdeBreoJulio Vila recibirá unha homenaxe in memoriam polos #50anosdeBreo"O Breogán homenaxeará aos seus aboados máis veteráns"Pechada ovación a «Capi» Sanmartín e Ricardo «Corazón de González»Homenaxe por décadas de informaciónPaco García volve ao Pazo con motivo do 50 aniversario"Resultados y clasificaciones""O Cafés Candelas Breogán, campión da Copa Princesa""O Cafés Candelas Breogán, equipo ACB"C.B. Breogán"Proxecto social"o orixinal"Centros asociados"o orixinalFicha en imdb.comMario Camus trata la recuperación del amor en 'La vieja música', su última película"Páxina web oficial""Club Baloncesto Breogán""C. B. Breogán S.A.D."eehttp://www.fegaba.com

Vilaño, A Laracha Índice Patrimonio | Lugares e parroquias | Véxase tamén | Menú de navegación43°14′52″N 8°36′03″O / 43.24775, -8.60070

Cegueira Índice Epidemioloxía | Deficiencia visual | Tipos de cegueira | Principais causas de cegueira | Tratamento | Técnicas de adaptación e axudas | Vida dos cegos | Primeiros auxilios | Crenzas respecto das persoas cegas | Crenzas das persoas cegas | O neno deficiente visual | Aspectos psicolóxicos da cegueira | Notas | Véxase tamén | Menú de navegación54.054.154.436928256blindnessDicionario da Real Academia GalegaPortal das Palabras"International Standards: Visual Standards — Aspects and Ranges of Vision Loss with Emphasis on Population Surveys.""Visual impairment and blindness""Presentan un plan para previr a cegueira"o orixinalACCDV Associació Catalana de Cecs i Disminuïts Visuals - PMFTrachoma"Effect of gene therapy on visual function in Leber's congenital amaurosis"1844137110.1056/NEJMoa0802268Cans guía - os mellores amigos dos cegosArquivadoEscola de cans guía para cegos en Mortágua, PortugalArquivado"Tecnología para ciegos y deficientes visuales. Recopilación de recursos gratuitos en la Red""Colorino""‘COL.diesis’, escuchar los sonidos del color""COL.diesis: Transforming Colour into Melody and Implementing the Result in a Colour Sensor Device"o orixinal"Sistema de desarrollo de sinestesia color-sonido para invidentes utilizando un protocolo de audio""Enseñanza táctil - geometría y color. Juegos didácticos para niños ciegos y videntes""Sistema Constanz"L'ocupació laboral dels cecs a l'Estat espanyol està pràcticament equiparada a la de les persones amb visió, entrevista amb Pedro ZuritaONCE (Organización Nacional de Cegos de España)Prevención da cegueiraDescrición de deficiencias visuais (Disc@pnet)Braillín, un boneco atractivo para calquera neno, con ou sen discapacidade, que permite familiarizarse co sistema de escritura e lectura brailleAxudas Técnicas36838ID00897494007150-90057129528256DOID:1432HP:0000618D001766C10.597.751.941.162C97109C0155020