diff options
Diffstat (limited to 'Documentation/BUG-HUNTING')
-rw-r--r-- | Documentation/BUG-HUNTING | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/Documentation/BUG-HUNTING b/Documentation/BUG-HUNTING index 35f5bd243336..6c816751b868 100644 --- a/Documentation/BUG-HUNTING +++ b/Documentation/BUG-HUNTING | |||
@@ -53,7 +53,7 @@ Finding it the old way | |||
53 | 53 | ||
54 | [Sat Mar 2 10:32:33 PST 1996 KERNEL_BUG-HOWTO lm@sgi.com (Larry McVoy)] | 54 | [Sat Mar 2 10:32:33 PST 1996 KERNEL_BUG-HOWTO lm@sgi.com (Larry McVoy)] |
55 | 55 | ||
56 | This is how to track down a bug if you know nothing about kernel hacking. | 56 | This is how to track down a bug if you know nothing about kernel hacking. |
57 | It's a brute force approach but it works pretty well. | 57 | It's a brute force approach but it works pretty well. |
58 | 58 | ||
59 | You need: | 59 | You need: |
@@ -66,12 +66,12 @@ You will then do: | |||
66 | 66 | ||
67 | . Rebuild a revision that you believe works, install, and verify that. | 67 | . Rebuild a revision that you believe works, install, and verify that. |
68 | . Do a binary search over the kernels to figure out which one | 68 | . Do a binary search over the kernels to figure out which one |
69 | introduced the bug. I.e., suppose 1.3.28 didn't have the bug, but | 69 | introduced the bug. I.e., suppose 1.3.28 didn't have the bug, but |
70 | you know that 1.3.69 does. Pick a kernel in the middle and build | 70 | you know that 1.3.69 does. Pick a kernel in the middle and build |
71 | that, like 1.3.50. Build & test; if it works, pick the mid point | 71 | that, like 1.3.50. Build & test; if it works, pick the mid point |
72 | between .50 and .69, else the mid point between .28 and .50. | 72 | between .50 and .69, else the mid point between .28 and .50. |
73 | . You'll narrow it down to the kernel that introduced the bug. You | 73 | . You'll narrow it down to the kernel that introduced the bug. You |
74 | can probably do better than this but it gets tricky. | 74 | can probably do better than this but it gets tricky. |
75 | 75 | ||
76 | . Narrow it down to a subdirectory | 76 | . Narrow it down to a subdirectory |
77 | 77 | ||
@@ -81,27 +81,27 @@ You will then do: | |||
81 | directories: | 81 | directories: |
82 | 82 | ||
83 | Copy the non-working directory next to the working directory | 83 | Copy the non-working directory next to the working directory |
84 | as "dir.63". | 84 | as "dir.63". |
85 | One directory at time, try moving the working directory to | 85 | One directory at time, try moving the working directory to |
86 | "dir.62" and mv dir.63 dir"time, try | 86 | "dir.62" and mv dir.63 dir"time, try |
87 | 87 | ||
88 | mv dir dir.62 | 88 | mv dir dir.62 |
89 | mv dir.63 dir | 89 | mv dir.63 dir |
90 | find dir -name '*.[oa]' -print | xargs rm -f | 90 | find dir -name '*.[oa]' -print | xargs rm -f |
91 | 91 | ||
92 | And then rebuild and retest. Assuming that all related | 92 | And then rebuild and retest. Assuming that all related |
93 | changes were contained in the sub directory, this should | 93 | changes were contained in the sub directory, this should |
94 | isolate the change to a directory. | 94 | isolate the change to a directory. |
95 | 95 | ||
96 | Problems: changes in header files may have occurred; I've | 96 | Problems: changes in header files may have occurred; I've |
97 | found in my case that they were self explanatory - you may | 97 | found in my case that they were self explanatory - you may |
98 | or may not want to give up when that happens. | 98 | or may not want to give up when that happens. |
99 | 99 | ||
100 | . Narrow it down to a file | 100 | . Narrow it down to a file |
101 | 101 | ||
102 | - You can apply the same technique to each file in the directory, | 102 | - You can apply the same technique to each file in the directory, |
103 | hoping that the changes in that file are self contained. | 103 | hoping that the changes in that file are self contained. |
104 | 104 | ||
105 | . Narrow it down to a routine | 105 | . Narrow it down to a routine |
106 | 106 | ||
107 | - You can take the old file and the new file and manually create | 107 | - You can take the old file and the new file and manually create |
@@ -130,7 +130,7 @@ You will then do: | |||
130 | that makes the difference. | 130 | that makes the difference. |
131 | 131 | ||
132 | Finally, you take all the info that you have, kernel revisions, bug | 132 | Finally, you take all the info that you have, kernel revisions, bug |
133 | description, the extent to which you have narrowed it down, and pass | 133 | description, the extent to which you have narrowed it down, and pass |
134 | that off to whomever you believe is the maintainer of that section. | 134 | that off to whomever you believe is the maintainer of that section. |
135 | A post to linux.dev.kernel isn't such a bad idea if you've done some | 135 | A post to linux.dev.kernel isn't such a bad idea if you've done some |
136 | work to narrow it down. | 136 | work to narrow it down. |