X-Git-Url: http://git.annexia.org/?p=virt-mem.git;a=blobdiff_plain;f=lib%2Fvirt_mem_kallsyms.ml;h=631bf615a35f214a66795cf5adaefbb994ca4d95;hp=239424860dd6278ae9b67f646ac3f8b5e94c31f2;hb=2e1de51e35bea53ebece1a6fd6d6970534f4cbe9;hpb=e7fad361d3dbf1689a22fdd1ae5f5579d6ef5fb0 diff --git a/lib/virt_mem_kallsyms.ml b/lib/virt_mem_kallsyms.ml index 2394248..631bf61 100644 --- a/lib/virt_mem_kallsyms.ml +++ b/lib/virt_mem_kallsyms.ml @@ -36,7 +36,7 @@ type kallsyms_compr = | Compressed of (string * Virt_mem_mmap.addr) list * Virt_mem_mmap.addr | Uncompressed of (string * Virt_mem_mmap.addr) list -let find_kallsyms debug (({ domname = domname; mem = mem } as image), ksymmap) = +let find_kallsyms debug ({ domname = domname; mem = mem } as image) ksymmap = let start_t = gettimeofday () in (* Now try to find the /proc/kallsyms table. This is in an odd @@ -200,10 +200,8 @@ let find_kallsyms debug (({ domname = domname; mem = mem } as image), ksymmap) = let freqs = frequency kallsymtabs in match freqs with | [] -> - (* Can't find any kallsymtabs, just return the ksymmap - * map generated previously from the exported symbols. - *) - ksymmap + (* Can't find any kallsymtabs. *) + None | (_, (_, _, _, Uncompressed names)) :: _ -> let rec loop ksymmap = function @@ -211,7 +209,7 @@ let find_kallsyms debug (({ domname = domname; mem = mem } as image), ksymmap) = loop (Ksymmap.add name value ksymmap) names | [] -> ksymmap in - loop ksymmap names + Some (loop ksymmap names) | (_, (start_addr, num_entries, names_addr, Compressed (compressed_names, markers_addr))) :: _ -> @@ -262,7 +260,7 @@ let find_kallsyms debug (({ domname = domname; mem = mem } as image), ksymmap) = loop (Ksymmap.add name value ksymmap) names | [] -> ksymmap in - loop ksymmap names in + Some (loop ksymmap names) in if debug then ( let end_t = gettimeofday () in @@ -270,4 +268,4 @@ let find_kallsyms debug (({ domname = domname; mem = mem } as image), ksymmap) = (end_t -. start_t) ); - ((image, ksymmap) : image1) + (image, ksymmap)