Commit 0170f730 authored by Oleg Dzhimiev's avatar Oleg Dzhimiev

initial commit

parent e6f685c3
This diff is collapsed.
......@@ -9,4 +9,4 @@ Speed up the Linux kernel dynamic debug
* make them accessible to the webserver
## user manual
* http://\<target-ip\>/\<webserver-path-to-degufs.html\>/debugfs.html
* http://\<target-ip\>/\<webserver-path-to-degufs.html\>/debugfs.html
\ No newline at end of file
html{
font-family: Arial;
font-size: 0.8em;
}
body{
padding: 10px;
}
table{
border-collapse:collapse;
border-radius: 3px;
}
th, td{
text-align: left;
padding: 3px 10px 3px 10px;
border-radius: 0px;
border: 1px solid rgba(180,180,180,0.5)
}
th {
background-color: rgba(200,200,200,0.5);
}
.even {
background-color: rgba(235,235,235,0.5);
}
.odd {
background-color: rgba(255,255,255,0.5);
}
.special {
background-color: rgba(100,200,100,0.5);
}
select {
border: 1px solid rgba(200,200,200,1);
border-radius: 2px;
font-family: Arial;
font-size: 1em;
background-color: rgba(200,200,200,0.5);
margin: 0px;
padding: 1px;
}
input {
-moz-appearance: none;
border: 1px solid rgba(200,200,200,1);
}
.tp{
width:20px;
height:20px;
}
\ No newline at end of file
<html>
<head>
<script src="js/jquery-2.2.3.min.js"></script>
<script src="js/jquery.ajax.queue.js"></script>
<script src="debugfs.js"></script>
<script src="js/bootstrap/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="js/bootstrap/css/bootstrap.min.css"/>
<link rel="stylesheet" href="debugfs.css"/>
</head>
<body onload='init()'>
</body>
</html>
\ No newline at end of file
This diff is collapsed.
<?php
//globals
$config = "debugfs.json";
$tmp_config = "/tmp/$config";
$DEBUGFSFILE = "/sys/kernel/debug/dynamic_debug/control";
if (isset($_GET['cmd']))
$cmd = $_GET['cmd'];
else
$cmd = "do_nothing";
function control_records_sort($a,$b){
$ad1 = strpos($a,":");
$ad2 = strpos($a,"[");
$afile = substr($a,0,$ad1);
$aline = (int)substr($a,$ad1+1,($ad2-1)-$ad1-1);
$bd1 = strpos($b,":");
$bd2 = strpos($b,"[");
$bfile = substr($b,0,$bd1);
$bline = (int)substr($b,$bd1+1,($bd2-1)-$bd1-1);
if ($afile==$bfile){
if ($aline==$bline){
return 0;
}
return($aline<$bline)?-1:1;
}
return ($afile<$bfile)?-1:1;
}
function get_control($f){
$res = Array();
$results = trim(file_get_contents($f));
//print("<pre>");
$ress = explode("\n",$results);
//filename - find first ":"
//lineno - between ":" and " "
//then [module] inside brackets
//function from "]" to " "
usort($ress,"control_records_sort");
$oldfile = "";
foreach($ress as $line){
if ($line[0]=="#") continue;
$d0 = 0;
$d1 = strpos($line,":");
$d2 = strpos($line,"[");
$d3 = strpos($line,"]");
preg_match("/=[flmpt_]+/",$line,$matches,PREG_OFFSET_CAPTURE);
$d4 = $matches[0][1];
$d5 = strpos($line,"\"");
$subarr = Array();
$subarr['file'] = substr($line,0,$d1);
$subarr['lineno'] = substr($line,$d1+1,($d2-1)-$d1-1);
$subarr['module'] = substr($line,$d2+1,($d3-1)-$d2);
$subarr['function'] = substr($line,$d3+1,($d4-1)-$d3-1);
$subarr['flags'] = substr($line,$d4+1,1);
$subarr['format'] = substr($line,$d5+1,-1);
if ($subarr['file']!=$oldfile){
//echo "processing ".$subarr['file']."\n";
if ($oldfile!="") array_push($res,$sub);
$oldfile = $subarr['file'];
$sub = Array(
"file" => $subarr['file'],
"state" => 0,
"configs" => Array(
Array(
"name" => "default",
"state" => 1,
"lines" => Array()
)
)
);
}
array_push($sub['configs'][0]['lines'],$subarr);
}
//last
array_push($res,$sub);
return $res;
}
function update_config($data){
global $tmp_config;
// debugfs.json
file_put_contents($tmp_config,$data);
}
function apply_config_to_control(){
global $tmp_config, $DEBUGFSFILE;
$longstring = "";
$arr_config = json_decode(file_get_contents($tmp_config),true);
foreach($arr_config as $v0){
if ($v0['state']==1){
foreach($v0['configs'] as $v1){
if ($v1['state']==1){
foreach($v1['lines'] as $v2){
$file = $v2['file'];
$lineno = $v2['lineno'];
$flag = $v2['flags'];
if ($flag=="p") $sign = "+";
else $sign = "-";
$newstring = "file $file line $lineno ${sign}p;";
//there's a limit
if (strlen($longstring.$newstring)>4095){
exec("echo -n '$longstring' > $DEBUGFSFILE");
$longstring = $newstring;
}else{
$longstring .= $newstring;
}
//echo "echo -n 'file $file line $lineno ${sign}p'\n";
}
}
}
}
}
exec("echo -n '$longstring' > $DEBUGFSFILE");
echo "Done";
}
function apply_flag($flag){
global $tmp_config, $DEBUGFSFILE;
$longstring = "";
$arr_config = json_decode(file_get_contents($tmp_config),true);
foreach($arr_config as $v0){
if ($v0['state']==1){
foreach($v0['configs'] as $v1){
if ($v1['state']==1){
$newstring = "file ".$v0['file']." $flag;";
if (strlen($longstring.$newstring)>4095){
exec("echo -n '$longstring' > $DEBUGFSFILE");
$longstring = $newstring;
}else{
$longstring .= $newstring;
}
}
}
}
}
exec("echo -n '$longstring' > $DEBUGFSFILE");
echo "Done";
}
function sync_from_debugfs_to_config($config_index,$file,$line,$flags,$sign){
global $tmp_config;
//$arr_debugfs = get_control("/sys/kernel/debug/dynamic_debug/control");
$arr_config = json_decode(file_get_contents($tmp_config),true);
$err = 0;
$dc = 0; $dcc = 0; $dccc = 0;
foreach($arr_config as $k => $v){
if ($v['file']==$file) {
$dc = $k;
$err = $err + 1;
break;
}
}
$tmp_arr1 = $arr_config[$dc]['configs'];
foreach($tmp_arr1 as $k => $v){
if ($v['state']==1) {
$dcc = $k;
$err = $err + 2;
break;
}
}
$tmp_arr2 = $arr_config[$dc]['configs'][$dcc]['lines'];
foreach($tmp_arr2 as $k => $v){
if ($v['lineno']==$line) {
$dccc = $k;
$err = $err + 4;
break;
}
}
if ($sign=="+") $flag = "p";
else $flag = "_";
echo "file index: $dc, config index: $dcc, line index: $dccc \n";
if ($err==7){
$arr_config[$dc]['configs'][$dcc]['lines'][$dccc]['flags'] = $flag;
update_config(json_encode($arr_config));
}else{
echo "error code: $err";
}
}
function filter_record_by_file($a,$f){
$res = Array();
foreach($a as $k=>$v){
if ($v['file']==$f){
$res = $v;
break;
}
}
return $res;
}
if ($cmd=="do_nothing"){
if (isset($_GET['file'])) $file = $_GET['file'];
else $file = $DEBUGFSFILE;
//echo json_encode(get_control($file));
//echo "<pre>";
if (!is_file($tmp_config)) {
if (is_file($config)) {
copy($config,$tmp_config);
$json_data = file_get_contents($tmp_config);
echo $json_data;
}else{
$arr = get_control($file);
//print_r($arr);
update_config(json_encode($arr));
echo json_encode($arr);
}
//echo "debugfs.json was missing, refresh page\n";
}else{
$json_data = file_get_contents($tmp_config);
echo $json_data;
//print_r(json_decode($json_data));
}
}
if ($cmd=="echo") {
$file = $_GET['file'];
$line = $_GET['line'];
$flags = $_GET['flags'];
$config_index = intval($_GET['conf']);
//$config name
if (strpos($flags,"p")===FALSE){
$sign = "-p";
}else{
$sign = "+";
}
exec("echo -n 'file $file line $line ${sign}${flags}' > $DEBUGFSFILE");
sync_from_debugfs_to_config($config_index,$file,$line,$flags,$sign);
}
$debugfs_configs = "debugfs_configs";
if ($cmd=="save"){
$file = $_GET['file'];
if (!is_dir($debugfs_configs)) mkdir($debugfs_configs);
file_put_contents("$debugfs_configs/$file", file_get_contents($DEBUGFSFILE));
}
if ($cmd=="sync"){
//list saved configs here
$file = $_GET['file'];
$data = file_get_contents("php://input");
update_config($data);
apply_config_to_control();
}
if ($cmd=="savetofs"){
copy($tmp_config,$config);
}
if ($cmd=="restore"){
apply_config_to_control();
}
if ($cmd=="reread"){
$file = $_GET['file'];
$arr = get_control($DEBUGFSFILE);
$filtered = filter_record_by_file($arr,$file);
echo json_encode($filtered);
//echo "<pre>";print_r($filtered);
}
if ($cmd=="setflag"){
$flag = $_GET['flag'];
apply_flag($flag);
}
//single line: echo -n 'file gamma_tables.c +p' > /sys/kernel/debug/dynamic_debug/control
?>
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
{"version":3,"sources":["less/theme.less","less/mixins/vendor-prefixes.less","less/mixins/gradients.less","less/mixins/reset-filter.less"],"names":[],"mappings":"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"}
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
This diff is collapsed.
// This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment.
require('../../js/transition.js')
require('../../js/alert.js')
require('../../js/button.js')
require('../../js/carousel.js')
require('../../js/collapse.js')
require('../../js/dropdown.js')
require('../../js/modal.js')
require('../../js/tooltip.js')
require('../../js/popover.js')
require('../../js/scrollspy.js')
require('../../js/tab.js')
require('../../js/affix.js')
\ No newline at end of file
This diff is collapsed.
// credits: https://blog.alexmaccaw.com/queuing-ajax-requests
// Generated by CoffeeScript 1.6.2
(function() {
var $, next, push, queue, queues, remove, running;
$ = jQuery;
queues = {};
running = false;
queue = function(name) {
if (name === true) {
name = 'default';
}
return queues[name] || (queues[name] = []);
};
next = function(name) {
var deferred, list, options, _ref;
list = queue(name);
if (!list.length) {
running = false;
return;
}
_ref = list.shift(), options = _ref[0], deferred = _ref[1];
return $.ajax(options).always(function() {
return next(name);
}).done(function() {
return deferred.resolve.apply(deferred, arguments);
}).fail(function() {
return deferred.reject.apply(deferred, arguments);
});
};
push = function(name, options) {
var deferred, list;
list = queue(name);
deferred = $.Deferred();
list.push([options, deferred]);
if (!running) {
next(name);
}
running = true;
return deferred.promise();
};
remove = function(name, options) {
var i, list, value, _, _i, _len, _ref, _results;
list = queue(name);
_results = [];
for (i = _i = 0, _len = list.length; _i < _len; i = ++_i) {
_ref = list[i], value = _ref[0], _ = _ref[1];
if (!(value === options)) {
continue;
}
list.splice(i, 1);
break;
}
return _results;
};
$.ajaxTransport('+*', function(options) {
var queuedOptions;
if (options.queue) {
queuedOptions = $.extend({}, options);
queuedOptions.queue = false;
queuedOptions.processData = false;
return {
send: function(headers, complete) {
return push(options.queue, queuedOptions).done(function(data, textStatus, jqXHR) {
return complete(jqXHR.status, jqXHR.statusText, {
text: jqXHR.responseText
}, jqXHR.getAllResponseHeaders());
}).fail(function(jqXHR, textStatus, errorThrown) {
return complete(jqXHR.status, jqXHR.statusText, {
text: jqXHR.responseText
}, jqXHR.getAllResponseHeaders());
});
},
abort: function() {
return remove(options.queue, queuedOptions);
}
};
}
});
}).call(this);
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment