]> rtime.felk.cvut.cz Git - l4.git/blob - l4/pkg/valgrind/doc/scripts/VG.lua
update
[l4.git] / l4 / pkg / valgrind / doc / scripts / VG.lua
1 module ("VG", package.seeall);
2
3 require ("L4");
4
5 -- Start Valgrind
6 -- 
7 -- Available options:
8 --      * tool                Valgrind tool (string: none, memcheck)
9 --      * cmdline             application cmd line to start (table of strings)
10 --      * debuglevel=<int>    Valgrind "-d" option count
11 --      * verbosity=<int>     Valgrind "-v" option count
12 function valgrind(options)
13         local idx = 2;
14         local args = {};
15
16         local toolbinaries = {
17                 none = "none-x86-l4re",
18                 memcheck = "memcheck-x86-l4re"
19         };
20
21         args[1] = "rom/"..toolbinaries[options.tool];
22
23         for i = 1, options.debuglevel do
24                 args[idx] = "-d";
25                 idx = idx + 1;
26         end
27
28         for i = 1, options.verbosity do
29                 args[idx] = "-v";
30                 idx = idx + 1;
31         end
32
33         for k,v in ipairs(options.cmdline) do
34             args[idx] = v;
35                 idx = idx + 1;
36         end
37
38         L4.default_loader:startv({log = {"vg", r}},
39                                                          unpack(args));
40 end
41
42
43 -- Build default options for starting Valgrind
44 function default_args(cmdline, ...)
45         args = {}
46         args.debuglevel = 0;
47         args.verbosity  = 0;
48         args.cmdline     = {cmdline, ...};
49         args.tool       = "none";
50
51         return args;
52 end
53
54
55 -- Launch the nulgrind tool
56 function none(cmdline, ...)
57         args = default_args(cmdline, ...)
58         args.tool = "none";
59         args.debuglevel = 4;
60         args.verbosity = 4;
61         valgrind(args);
62 end
63
64
65 -- Launch memcheck
66 function memcheck(cmdline, ...)
67         args = default_args(cmdline, ...)
68         args.tool = "memcheck";
69         args.cmdline = { "--leak-check=yes", "--show-reachable=yes", cmdline, ... };
70         valgrind(args);
71 end
72
73 function debug_memcheck(cmdline, ...)
74         args = {}
75         args.debuglevel = 4;
76         args.verbosity  = 4;
77         args.cmdline    = { "--leak-check=yes", "--show-reachable=yes", cmdline, ... };
78         args.tool = "memcheck";
79         valgrind(args);
80 end