X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=lib%2Fvirt_mem_capture.ml;h=0c1ff57462ff7414eb60d52720c8245746469521;hb=898c12fcca817229061fbe50b88651328ea4ec03;hp=29f746627497217ae50ddb82e95ebacee523a294;hpb=e3b79ee907537feec9274b1bfab7e450fc97dbcf;p=virt-mem.git diff --git a/lib/virt_mem_capture.ml b/lib/virt_mem_capture.ml index 29f7466..0c1ff57 100644 --- a/lib/virt_mem_capture.ml +++ b/lib/virt_mem_capture.ml @@ -22,6 +22,9 @@ open Printf open ExtString +module D = Libvirt.Domain + +open Virt_mem_types open Virt_mem_gettext.Gettext (* This will contain what is passed by the user as '-o' option. *) @@ -51,11 +54,11 @@ let rec beforeksyms debug = function * is the domain ID (if known) or a mangled domain name. *) List.iter ( - fun ((domid, domname, _, _) as image) -> + fun ({ dom = dom; domname = domname } as image) -> let filename = !output_filename ^ "." ^ - match domid with - | Some id -> string_of_int id + match dom with + | Some dom -> string_of_int (D.get_id dom) | None -> let f = function | ('a'..'z'|'A'..'Z'|'0'..'9'|'_' as c) -> String.make 1 c @@ -65,20 +68,10 @@ let rec beforeksyms debug = function save_image image filename ) images -and save_image (_, domname, arch, mem) filename = - let chan = open_out filename in +and save_image { domname = domname } filename = + assert false; - (* XXX At the moment, CONTRARY to what it says in the manual, we - * are only able to dump out raw data. We don't save the header, - * start address, etc. (which we should do). XXX - *) - assert (Virt_mem_mmap.nr_mappings mem = 1); - - Virt_mem_mmap.iter mem ( - fun start size -> - let bytes = Virt_mem_mmap.get_bytes mem start (Int64.to_int size) in - output_string chan bytes - ); + let chan = open_out filename in close_out chan;