Commit Graph

577 Commits

Author SHA1 Message Date
Leon Loopik
ca925c49e0 Add rsi to the clobber list (#195)
In the second macro (handler_with_error_code), we pop the error code into rsi, this means we are changing the value of rsi in the assembly block, so we should add it to the clobbers.

I am quite new to this, so please close this request if I am completely wrong.

(Side question: An other thing I came across while trying to figure out if this was correct, is that every documentation says you should add curly brackets around register names, can someone tell me why this is not done here?)
2016-08-04 00:19:12 +02:00
Philipp Oppermann
5e6a8cb69b Link gitter chat 2016-08-03 20:48:24 +02:00
Philipp Oppermann
88fe633b87 Merge pull request #194 from phil-opp/better-exception-messages
New post: Better Exception Messages
2016-08-03 17:03:13 +02:00
Philipp Oppermann
3312478f71 Include “Better Exception Messages” in README 2016-08-03 17:00:18 +02:00
Philipp Oppermann
60a58a8c9c Fix github tag link 2016-08-03 17:00:18 +02:00
Philipp Oppermann
2b629415a4 Final improvements 2016-08-03 17:00:18 +02:00
Philipp Oppermann
d13460812d Run rustfmt 2016-08-03 17:00:18 +02:00
Philipp Oppermann
a9319ea83e Translate error code and print cr2 register 2016-08-03 17:00:18 +02:00
Philipp Oppermann
69f1b58bb0 Add and test a handler_with_error_code macro and a page fault handler 2016-08-03 17:00:18 +02:00
Philipp Oppermann
df1e39edb2 Add and test an invalid opcode handler function 2016-08-03 17:00:18 +02:00
Philipp Oppermann
71ebb23ec3 Add a handler macro that creates wrapper functions 2016-08-03 17:00:18 +02:00
Philipp Oppermann
e7ee1faaba Add a wrapper function and print the exception stack frame 2016-08-03 17:00:18 +02:00
Philipp Oppermann
d97a8a3210 Silence dead code warnings 2016-08-03 17:00:18 +02:00
Philipp Oppermann
297f8442b9 Reset src to master to be able to follow step-by-step 2016-08-03 17:00:18 +02:00
Philipp Oppermann
398ba7a424 Provoke a page fault 2016-08-03 17:00:18 +02:00
Philipp Oppermann
261f92e2e5 Print cr2 in page_fault_handler 2016-08-03 17:00:18 +02:00
Philipp Oppermann
1ba595aab3 Rename to better-exception-messages 2016-08-03 17:00:18 +02:00
Philipp Oppermann
710cebe695 Finish exceptions diagnostics post 2016-08-03 17:00:18 +02:00
Philipp Oppermann
e9d2d594ab Add handler! macros 2016-08-03 17:00:18 +02:00
Philipp Oppermann
f14876dfff Next section: Debug the failure on real hardware 2016-08-03 17:00:18 +02:00
Philipp Oppermann
b1de7a9100 Add a ToC 2016-08-03 17:00:18 +02:00
Philipp Oppermann
40b565947b Test the two-stage exception handler in code 2016-08-03 17:00:18 +02:00
Philipp Oppermann
e8220b3781 Describe the two-stage exception handler 2016-08-03 17:00:18 +02:00
Philipp Oppermann
2e0f4f9161 Begin code for upcoming post 2016-08-03 17:00:11 +02:00
Philipp Oppermann
95c0452bcb Begin new post 2016-08-03 14:44:52 +02:00
Philipp Oppermann
68e2495d9c Rename modifying-page-tables.md to page-tables.md 2016-08-03 14:43:01 +02:00
Philipp Oppermann
9469dc5891 Remove coarse class from ToCs
We will add it dynamically via javascript when the Toc is higher than the viewport.
2016-07-28 19:42:37 +02:00
Anton Strömkvist
6b2f1281ae Fix hex constant (#193)
I assume these were in the wrong order since all the others looked this way :)
2016-07-28 18:01:42 +02:00
Philipp Oppermann
826e303ed0 Merge pull request #192 from phil-opp/post-toc
Add tables of contents to all blog posts
2016-07-17 17:14:50 +02:00
Philipp Oppermann
d4e82b0aa4 Improve heading levels 2016-07-17 17:10:42 +02:00
Philipp Oppermann
bc6f496eb5 Add tables of contents to all blog posts 2016-07-17 17:10:23 +02:00
Philipp Oppermann
62dd13b2e7 Merge pull request #190 from phil-opp/p1
Add aligned .got and .got.plt sections to linker script
2016-07-16 17:22:25 +02:00
Philipp Oppermann
68c1e42356 Update linker script in post (add .got and .got.plt) 2016-07-14 18:11:58 +02:00
Philipp Oppermann
2445b47661 Add aligned .got and .got.plt sections to linker script 2016-07-14 18:07:26 +02:00
Philipp Oppermann
d64e4ba2fc Update x86 crate to 0.7.1 (#189) 2016-07-14 11:21:04 +02:00
Aaron Hill
48e7faa521 Add ENTRY(start) to 'Allocating Frames' blog post linker script (#188) 2016-06-29 09:19:08 +02:00
Philipp Oppermann
f8c5bc5dec Merge pull request #187 from phil-opp/divide_by_zero
Catch divide error instead of page fault
2016-06-25 17:13:29 +02:00
Philipp Oppermann
ca438d9740 Revise plans for the upcoming post 2016-06-25 17:12:04 +02:00
Philipp Oppermann
702e49eaf7 Catch divide-by-zero errors and introduce inline assembly
This commit updates the “Catching Exceptions” post to catch divide-by-zero errors instead of page faults. The reason is a subtle stack alignment bug, which is somehow caused by the additional error code on a page fault. This commit also adds a short introduction to inline assembly.
2016-06-25 17:12:04 +02:00
Philipp Oppermann
e8b3a1fff1 Catch divide error instead of page fault
The divide error pushes no error code. Thus we avoid stack misalignment (see #184).
2016-06-25 17:12:04 +02:00
Philipp Oppermann
c9d8afe434 Run rustfmt 2016-06-25 17:08:26 +02:00
Philipp Oppermann
2f9e6cc0d0 Minor improvements to catching exceptions post 2016-06-25 17:06:57 +02:00
Philipp Oppermann
84ba085a0a The section will be only about exceptions (#186) 2016-06-24 13:59:17 +02:00
Philipp Oppermann
b7a47ee001 Add gitter badge (#183) 2016-06-24 13:54:35 +02:00
Philipp Oppermann
e4cc5b84f1 Merge pull request #185 from phil-opp/unwind_resume
Create dummy _Unwind_Resume function to fix libcore linker errors
2016-06-24 13:44:54 +02:00
Philipp Oppermann
f00360d553 Add and explain dummy _Unwind_Resume function in “Set Up Rust” post 2016-06-24 13:37:03 +02:00
Philipp Oppermann
952f7ed5e3 Create dummy _Unwind_Resume function to fix libcore linker errors 2016-06-24 13:37:02 +02:00
Philipp Oppermann
76b83c623e Revert "Remove unneeded gcc_except_table section" (#180) 2016-06-13 18:36:01 +02:00
Philipp Oppermann
20d9037740 Merge pull request #178 from phil-opp/patch5
Remove unneeded gcc_except_table section
2016-06-12 16:36:00 +02:00
Philipp Oppermann
1fb6369f61 Remove unneeded gcc_except_table section from blog post 2016-06-12 16:33:55 +02:00