utils 0.6.4 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/Rakefile +2 -1
- data/VERSION +1 -1
- data/bin/blameline +2 -2
- data/bin/classify +48 -12
- data/bin/dialog-pick +11 -0
- data/bin/discover +2 -5
- data/bin/edit +1 -1
- data/bin/probe +1 -1
- data/bin/rssr +37 -0
- data/bin/search +3 -2
- data/bin/serve +24 -0
- data/bin/ssh-tunnel +1 -1
- data/bin/strip_spaces +1 -1
- data/bin/utils-utilsrc +1 -1
- data/lib/utils.rb +1 -2
- data/lib/utils/{config/config_file.rb → config_file.rb} +19 -4
- data/lib/utils/editor.rb +1 -1
- data/lib/utils/finder.rb +18 -19
- data/lib/utils/grepper.rb +20 -3
- data/lib/utils/line_blamer.rb +1 -1
- data/lib/utils/patterns.rb +3 -1
- data/lib/utils/version.rb +1 -1
- data/utils.gemspec +9 -9
- metadata +12 -18
- data/bin/utils-install-config +0 -10
- data/lib/utils/config.rb +0 -23
- data/lib/utils/config/gdb/asm +0 -179
- data/lib/utils/config/gdb/ruby +0 -514
- data/lib/utils/config/gdbinit +0 -8
- data/lib/utils/config/irbrc +0 -3
- data/lib/utils/config/rdebugrc +0 -2
- data/lib/utils/config/rvmrc +0 -5
- data/lib/utils/config/screenrc +0 -143
- data/lib/utils/config/utilsrc +0 -14
data/lib/utils/grepper.rb
CHANGED
@@ -31,8 +31,8 @@ class Utils::Grepper
|
|
31
31
|
|
32
32
|
def initialize(opts = {})
|
33
33
|
@args = opts[:args] || {}
|
34
|
-
@roots = opts[:roots]
|
35
|
-
@config = opts[:config] || Utils::
|
34
|
+
@roots = discover_roots(opts[:roots])
|
35
|
+
@config = opts[:config] || Utils::ConfigFile.new
|
36
36
|
if n = @args.values_at(*%w[A B C]).compact.first
|
37
37
|
if n.to_s =~ /\A\d+\Z/ and (n = n.to_i) >= 1
|
38
38
|
@queue = Queue.new n
|
@@ -94,6 +94,16 @@ class Utils::Grepper
|
|
94
94
|
end
|
95
95
|
unless @output.empty?
|
96
96
|
case
|
97
|
+
when @args['b']
|
98
|
+
@output.uniq!
|
99
|
+
@output.each do |l|
|
100
|
+
blamer = LineBlamer.for_line(l)
|
101
|
+
if blame = blamer.perform
|
102
|
+
blame.sub!(/^[0-9a-f^]+/) { Term::ANSIColor.yellow($&) }
|
103
|
+
blame.sub!(/\(([^)]+)\)/) { "(#{Term::ANSIColor.red($1)})" }
|
104
|
+
puts "#{l} #{blame}"
|
105
|
+
end
|
106
|
+
end
|
97
107
|
when @args['l'], @args['e'], @args['E'], @args['r']
|
98
108
|
@output.uniq!
|
99
109
|
@paths.concat @output
|
@@ -114,7 +124,7 @@ class Utils::Grepper
|
|
114
124
|
case
|
115
125
|
when @args['l']
|
116
126
|
@output << @filename
|
117
|
-
when @args['L'], @args['r']
|
127
|
+
when @args['L'], @args['r'], @args['b']
|
118
128
|
@output << "#{@filename}:#{file.lineno}"
|
119
129
|
when @args['e'], @args['E']
|
120
130
|
@output << "#{@filename}:#{file.lineno}"
|
@@ -153,4 +163,11 @@ class Utils::Grepper
|
|
153
163
|
@paths = @paths.sort_by(&:source_location)
|
154
164
|
self
|
155
165
|
end
|
166
|
+
|
167
|
+
private
|
168
|
+
|
169
|
+
def discover_roots(roots)
|
170
|
+
roots ||= []
|
171
|
+
roots.inject([]) { |rs, r| rs.concat Dir[r] }
|
172
|
+
end
|
156
173
|
end
|
data/lib/utils/line_blamer.rb
CHANGED
data/lib/utils/patterns.rb
CHANGED
@@ -19,7 +19,9 @@ module Utils
|
|
19
19
|
class FuzzyPattern < Pattern
|
20
20
|
def initialize(opts ={})
|
21
21
|
super
|
22
|
-
r
|
22
|
+
r = @pattern.split(//).grep(/[0-9a-z]/).map { |x|
|
23
|
+
"(#{Regexp.quote(x)})"
|
24
|
+
} * '.*?'
|
23
25
|
@matcher = Regexp.new(
|
24
26
|
"\\A(?:.*/.*?#{r}|.*#{r})",
|
25
27
|
@icase ? Regexp::IGNORECASE : 0)
|
data/lib/utils/version.rb
CHANGED
data/utils.gemspec
CHANGED
@@ -1,19 +1,19 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
-
# stub: utils 0.
|
2
|
+
# stub: utils 0.8.0 ruby lib
|
3
3
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = "utils"
|
6
|
-
s.version = "0.
|
6
|
+
s.version = "0.8.0"
|
7
7
|
|
8
8
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
9
9
|
s.require_paths = ["lib"]
|
10
10
|
s.authors = ["Florian Frank"]
|
11
|
-
s.date = "2016-
|
11
|
+
s.date = "2016-09-30"
|
12
12
|
s.description = "This ruby gem provides some useful command line utilities"
|
13
13
|
s.email = "flori@ping.de"
|
14
|
-
s.executables = ["blameline", "brakeman2err", "chroot-exec", "chroot-libs", "classify", "create_tags", "discover", "edit", "edit_wait", "enum", "errf", "git-empty", "irb_connect", "json_check", "long_lines", "myex", "number_files", "on_change", "path", "probe", "remote_copy", "same_files", "search", "sedit", "ssh-tunnel", "strip_spaces", "unquarantine_apps", "untest", "utils-
|
15
|
-
s.extra_rdoc_files = ["README.md", "lib/utils.rb", "lib/utils/
|
16
|
-
s.files = [".gitignore", "COPYING", "Gemfile", "README.md", "Rakefile", "VERSION", "bin/blameline", "bin/brakeman2err", "bin/chroot-exec", "bin/chroot-libs", "bin/classify", "bin/create_tags", "bin/discover", "bin/edit", "bin/edit_wait", "bin/enum", "bin/errf", "bin/git-empty", "bin/irb_connect", "bin/json_check", "bin/long_lines", "bin/myex", "bin/number_files", "bin/on_change", "bin/path", "bin/probe", "bin/remote_copy", "bin/same_files", "bin/search", "bin/sedit", "bin/ssh-tunnel", "bin/strip_spaces", "bin/unquarantine_apps", "bin/untest", "bin/utils-
|
14
|
+
s.executables = ["blameline", "brakeman2err", "chroot-exec", "chroot-libs", "classify", "create_tags", "dialog-pick", "discover", "edit", "edit_wait", "enum", "errf", "git-empty", "irb_connect", "json_check", "long_lines", "myex", "number_files", "on_change", "path", "probe", "remote_copy", "rssr", "same_files", "search", "sedit", "serve", "ssh-tunnel", "strip_spaces", "unquarantine_apps", "untest", "utils-utilsrc", "vacuum_firefox_sqlite", "xmp"]
|
15
|
+
s.extra_rdoc_files = ["README.md", "lib/utils.rb", "lib/utils/config_file.rb", "lib/utils/editor.rb", "lib/utils/file_xt.rb", "lib/utils/finder.rb", "lib/utils/grepper.rb", "lib/utils/irb.rb", "lib/utils/irb/service.rb", "lib/utils/line_blamer.rb", "lib/utils/line_formatter.rb", "lib/utils/md5.rb", "lib/utils/patterns.rb", "lib/utils/probe_server.rb", "lib/utils/ssh_tunnel_specification.rb", "lib/utils/version.rb", "lib/utils/xt/source_location_extension.rb"]
|
16
|
+
s.files = [".gitignore", "COPYING", "Gemfile", "README.md", "Rakefile", "VERSION", "bin/blameline", "bin/brakeman2err", "bin/chroot-exec", "bin/chroot-libs", "bin/classify", "bin/create_tags", "bin/dialog-pick", "bin/discover", "bin/edit", "bin/edit_wait", "bin/enum", "bin/errf", "bin/git-empty", "bin/irb_connect", "bin/json_check", "bin/long_lines", "bin/myex", "bin/number_files", "bin/on_change", "bin/path", "bin/probe", "bin/remote_copy", "bin/rssr", "bin/same_files", "bin/search", "bin/sedit", "bin/serve", "bin/ssh-tunnel", "bin/strip_spaces", "bin/unquarantine_apps", "bin/untest", "bin/utils-utilsrc", "bin/vacuum_firefox_sqlite", "bin/xmp", "lib/utils.rb", "lib/utils/config_file.rb", "lib/utils/editor.rb", "lib/utils/file_xt.rb", "lib/utils/finder.rb", "lib/utils/grepper.rb", "lib/utils/irb.rb", "lib/utils/irb/service.rb", "lib/utils/line_blamer.rb", "lib/utils/line_formatter.rb", "lib/utils/md5.rb", "lib/utils/patterns.rb", "lib/utils/probe_server.rb", "lib/utils/ssh_tunnel_specification.rb", "lib/utils/version.rb", "lib/utils/xt/source_location_extension.rb", "utils.gemspec", "utils.gemspec "]
|
17
17
|
s.homepage = "http://github.com/flori/utils"
|
18
18
|
s.rdoc_options = ["--title", "Utils - Some useful command line utilities", "--main", "README.md"]
|
19
19
|
s.rubygems_version = "2.5.1"
|
@@ -23,20 +23,20 @@ Gem::Specification.new do |s|
|
|
23
23
|
s.specification_version = 4
|
24
24
|
|
25
25
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
26
|
-
s.add_development_dependency(%q<gem_hadar>, ["~> 1.
|
26
|
+
s.add_development_dependency(%q<gem_hadar>, ["~> 1.8.0"])
|
27
27
|
s.add_runtime_dependency(%q<tins>, ["~> 1.8"])
|
28
28
|
s.add_runtime_dependency(%q<term-ansicolor>, ["~> 1.3"])
|
29
29
|
s.add_runtime_dependency(%q<pstree>, ["~> 0.1"])
|
30
30
|
s.add_runtime_dependency(%q<pry-editline>, [">= 0"])
|
31
31
|
else
|
32
|
-
s.add_dependency(%q<gem_hadar>, ["~> 1.
|
32
|
+
s.add_dependency(%q<gem_hadar>, ["~> 1.8.0"])
|
33
33
|
s.add_dependency(%q<tins>, ["~> 1.8"])
|
34
34
|
s.add_dependency(%q<term-ansicolor>, ["~> 1.3"])
|
35
35
|
s.add_dependency(%q<pstree>, ["~> 0.1"])
|
36
36
|
s.add_dependency(%q<pry-editline>, [">= 0"])
|
37
37
|
end
|
38
38
|
else
|
39
|
-
s.add_dependency(%q<gem_hadar>, ["~> 1.
|
39
|
+
s.add_dependency(%q<gem_hadar>, ["~> 1.8.0"])
|
40
40
|
s.add_dependency(%q<tins>, ["~> 1.8"])
|
41
41
|
s.add_dependency(%q<term-ansicolor>, ["~> 1.3"])
|
42
42
|
s.add_dependency(%q<pstree>, ["~> 0.1"])
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: utils
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Florian Frank
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-09-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: gem_hadar
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 1.
|
19
|
+
version: 1.8.0
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 1.
|
26
|
+
version: 1.8.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: tins
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -89,6 +89,7 @@ executables:
|
|
89
89
|
- chroot-libs
|
90
90
|
- classify
|
91
91
|
- create_tags
|
92
|
+
- dialog-pick
|
92
93
|
- discover
|
93
94
|
- edit
|
94
95
|
- edit_wait
|
@@ -104,14 +105,15 @@ executables:
|
|
104
105
|
- path
|
105
106
|
- probe
|
106
107
|
- remote_copy
|
108
|
+
- rssr
|
107
109
|
- same_files
|
108
110
|
- search
|
109
111
|
- sedit
|
112
|
+
- serve
|
110
113
|
- ssh-tunnel
|
111
114
|
- strip_spaces
|
112
115
|
- unquarantine_apps
|
113
116
|
- untest
|
114
|
-
- utils-install-config
|
115
117
|
- utils-utilsrc
|
116
118
|
- vacuum_firefox_sqlite
|
117
119
|
- xmp
|
@@ -119,8 +121,7 @@ extensions: []
|
|
119
121
|
extra_rdoc_files:
|
120
122
|
- README.md
|
121
123
|
- lib/utils.rb
|
122
|
-
- lib/utils/
|
123
|
-
- lib/utils/config/config_file.rb
|
124
|
+
- lib/utils/config_file.rb
|
124
125
|
- lib/utils/editor.rb
|
125
126
|
- lib/utils/file_xt.rb
|
126
127
|
- lib/utils/finder.rb
|
@@ -148,6 +149,7 @@ files:
|
|
148
149
|
- bin/chroot-libs
|
149
150
|
- bin/classify
|
150
151
|
- bin/create_tags
|
152
|
+
- bin/dialog-pick
|
151
153
|
- bin/discover
|
152
154
|
- bin/edit
|
153
155
|
- bin/edit_wait
|
@@ -163,28 +165,20 @@ files:
|
|
163
165
|
- bin/path
|
164
166
|
- bin/probe
|
165
167
|
- bin/remote_copy
|
168
|
+
- bin/rssr
|
166
169
|
- bin/same_files
|
167
170
|
- bin/search
|
168
171
|
- bin/sedit
|
172
|
+
- bin/serve
|
169
173
|
- bin/ssh-tunnel
|
170
174
|
- bin/strip_spaces
|
171
175
|
- bin/unquarantine_apps
|
172
176
|
- bin/untest
|
173
|
-
- bin/utils-install-config
|
174
177
|
- bin/utils-utilsrc
|
175
178
|
- bin/vacuum_firefox_sqlite
|
176
179
|
- bin/xmp
|
177
180
|
- lib/utils.rb
|
178
|
-
- lib/utils/
|
179
|
-
- lib/utils/config/config_file.rb
|
180
|
-
- lib/utils/config/gdb/asm
|
181
|
-
- lib/utils/config/gdb/ruby
|
182
|
-
- lib/utils/config/gdbinit
|
183
|
-
- lib/utils/config/irbrc
|
184
|
-
- lib/utils/config/rdebugrc
|
185
|
-
- lib/utils/config/rvmrc
|
186
|
-
- lib/utils/config/screenrc
|
187
|
-
- lib/utils/config/utilsrc
|
181
|
+
- lib/utils/config_file.rb
|
188
182
|
- lib/utils/editor.rb
|
189
183
|
- lib/utils/file_xt.rb
|
190
184
|
- lib/utils/finder.rb
|
data/bin/utils-install-config
DELETED
data/lib/utils/config.rb
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
require 'fileutils'
|
2
|
-
|
3
|
-
module Utils
|
4
|
-
module Config
|
5
|
-
extend FileUtils::Verbose
|
6
|
-
|
7
|
-
CONFIG_DIR = File.expand_path(__FILE__).sub(/#{Regexp.quote(File.extname(__FILE__))}\Z/, '')
|
8
|
-
|
9
|
-
def self.install_config
|
10
|
-
srcs = Dir[File.join(CONFIG_DIR, '*')]
|
11
|
-
dst_prefix = ENV['HOME'] or fail 'environment variable $HOME is required'
|
12
|
-
for src in srcs
|
13
|
-
dst = File.join(dst_prefix, ".#{File.basename(src)}")
|
14
|
-
if File.exist?(dst)
|
15
|
-
rm_rf "#{dst}.bak"
|
16
|
-
mv dst, "#{dst}.bak/", :force => true
|
17
|
-
end
|
18
|
-
cp_r src, dst
|
19
|
-
end
|
20
|
-
self
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
data/lib/utils/config/gdb/asm
DELETED
@@ -1,179 +0,0 @@
|
|
1
|
-
|
2
|
-
# ASM DEBUGGING
|
3
|
-
# define special help command "h" that shows asm related commands only
|
4
|
-
#
|
5
|
-
define h
|
6
|
-
echo -------\n
|
7
|
-
echo asm debugging commands, see "help" for other gdb comands\n
|
8
|
-
echo \ \n
|
9
|
-
echo g <adr> exec & set temp break <adr> u <n> disassemble from pc n times\n
|
10
|
-
echo c run program (continue) uu <adr> <n> disassemble from adr n times\n
|
11
|
-
echo n step one instruction ss <n> show stack n locations\n
|
12
|
-
echo nn step but do not enter calls r show registers\n
|
13
|
-
echo until step or run to end of loop db <adr> <n> display bytes\n
|
14
|
-
echo \ dw <adr> <n> display words\n
|
15
|
-
echo q quit gdb dd <adr> <n> display dword\n
|
16
|
-
echo \ ds <adr> <n> display string\n
|
17
|
-
echo bs show breaks \n
|
18
|
-
echo bc clear breaks \n
|
19
|
-
echo \n
|
20
|
-
echo modifying the code within gdb requires reload, recompile easier? \n
|
21
|
-
echo to change register -> set $eax = 0x123456 \n
|
22
|
-
echo ------\n
|
23
|
-
end
|
24
|
-
#
|
25
|
-
# set gdb initialization flags - change these as needed
|
26
|
-
#
|
27
|
-
# eliminate the pesky exit message that says program is running
|
28
|
-
set confirm off
|
29
|
-
set language asm
|
30
|
-
# set disassembly-flavor intel
|
31
|
-
# enable the following to work in hex, the default is decimal
|
32
|
-
set output-radix 16
|
33
|
-
set input-radix 16
|
34
|
-
#
|
35
|
-
# disable pesky hook messages?? this may not be necessary in other versions of gdb
|
36
|
-
#
|
37
|
-
define hook-stop
|
38
|
-
end
|
39
|
-
define hook-continue
|
40
|
-
end
|
41
|
-
#------------- define special commands for assembler -------------------
|
42
|
-
#
|
43
|
-
# go (run) to temporary break location "g <label>"
|
44
|
-
#
|
45
|
-
define g
|
46
|
-
tbreak $arg0
|
47
|
-
continue
|
48
|
-
x/1i $pc
|
49
|
-
echo ----------\n
|
50
|
-
end
|
51
|
-
#
|
52
|
-
# show stack "ss <n>" where n is number of entries to show
|
53
|
-
#
|
54
|
-
define ss
|
55
|
-
x/$arg0xh $esp-(4 * $arg0)
|
56
|
-
end
|
57
|
-
#
|
58
|
-
# define nn to single step over calls
|
59
|
-
#
|
60
|
-
define nn
|
61
|
-
echo --------------
|
62
|
-
nexti
|
63
|
-
printf "eax=%x ebx=%x ecx=%x edx=%x esi=%x edi=%x ebp=%x esp=%x\n",$eax,$ebx,$ecx,$edx,$esi,$edi,$ebp,$esp
|
64
|
-
x /4i $pc
|
65
|
-
end
|
66
|
-
#
|
67
|
-
# define n to single step one instruction
|
68
|
-
#
|
69
|
-
define n
|
70
|
-
echo line-
|
71
|
-
si
|
72
|
-
printf "eax=%x ebx=%x ecx=%x edx=%x esi=%x edi=%x ebp=%x esp=%x eflags=%x\n",$eax,$ebx,$ecx,$edx,$esi,$edi,$ebp,$esp,$eflags
|
73
|
-
#disassemble $pc $pc+14
|
74
|
-
x /4i $pc
|
75
|
-
end
|
76
|
-
#
|
77
|
-
# define "u <n>" to disassemble n locations from $pc
|
78
|
-
#
|
79
|
-
define u
|
80
|
-
# x/$arg0i $eip
|
81
|
-
disassemble $eip $eip+$arg0
|
82
|
-
#disassemble $arg0
|
83
|
-
end
|
84
|
-
#
|
85
|
-
# define "uu <label> <n>" to disassemble n locations from given label
|
86
|
-
#
|
87
|
-
define uu
|
88
|
-
x/$arg1i $arg0
|
89
|
-
# disassemble $arg0 $arg0+$arg1
|
90
|
-
end
|
91
|
-
#
|
92
|
-
# define "bs" show breaks
|
93
|
-
#
|
94
|
-
define bs
|
95
|
-
info break
|
96
|
-
end
|
97
|
-
#
|
98
|
-
# define "bc" clear all breakpoints
|
99
|
-
#
|
100
|
-
define bc
|
101
|
-
delete
|
102
|
-
end
|
103
|
-
#
|
104
|
-
# define "r" show registers
|
105
|
-
#
|
106
|
-
define r
|
107
|
-
echo -----\n
|
108
|
-
printf "eax=%x ebx=%x ecx=%x edx=%x esi=%x edi=%x ebp=%x\n",$eax,$ebx,$ecx,$edx,$esi,$edi,$ebp
|
109
|
-
printf "esp=%x eip=%x flag=%x --> O D I T S Z - AC - P - C\n",$esp,$eip,$eflags
|
110
|
-
echo flags= Overflow, Direction, Interrupt, Trap, Sign, Zero, AuxCarry, Parity, Carry\n
|
111
|
-
x/i $pc
|
112
|
-
echo -----\n
|
113
|
-
end
|
114
|
-
#
|
115
|
-
# define "db <adr> <n>" display <n> bytes at <adr>
|
116
|
-
#
|
117
|
-
define db
|
118
|
-
x/$arg1xb $arg0
|
119
|
-
end
|
120
|
-
#
|
121
|
-
# define "dw <adr> <n>" display <n> words at <adr>
|
122
|
-
#
|
123
|
-
define dw
|
124
|
-
x/$arg1xh $arg0
|
125
|
-
end
|
126
|
-
#
|
127
|
-
# define "dd <adr> <n>" display <n> dwords at <adr>
|
128
|
-
#
|
129
|
-
define dd
|
130
|
-
x/$arg1xw $arg0
|
131
|
-
end
|
132
|
-
#
|
133
|
-
# define "ds <adr> <n>" display <n> char(ascii) at <adr>
|
134
|
-
#
|
135
|
-
define ds
|
136
|
-
x/$arg1cb $arg0
|
137
|
-
end
|
138
|
-
|
139
|
-
# attempt a string display...
|
140
|
-
define dstr
|
141
|
-
x /1sb &$arg0
|
142
|
-
end
|
143
|
-
|
144
|
-
|
145
|
-
set $asm_instruction_counter = 0
|
146
|
-
define icount
|
147
|
-
print "stepi instructions: %d\n", $asm_instruction_counter
|
148
|
-
end
|
149
|
-
|
150
|
-
define hook-n
|
151
|
-
set $asm_instruction_counter = $asm_instruction_counter + 1
|
152
|
-
end
|
153
|
-
|
154
|
-
define icountreset
|
155
|
-
set $asm_instruction_counter = 0
|
156
|
-
end
|
157
|
-
|
158
|
-
#
|
159
|
-
# start of code initialization ----------------------
|
160
|
-
#
|
161
|
-
# to initialize gdb we need to use the "run" command once, first
|
162
|
-
# we display the current instruction, then set a break at next location.
|
163
|
-
# Warning - the first instruction must be one byte long.
|
164
|
-
# Next, we start the program executing (run) then clear all breakpoints.
|
165
|
-
#
|
166
|
-
|
167
|
-
# x /1i *_start
|
168
|
-
# echo ---------------
|
169
|
-
# break *_start+1
|
170
|
-
# run
|
171
|
-
# delete
|
172
|
-
# x /1i *_start+1
|
173
|
-
|
174
|
-
echo \n---------\n
|
175
|
-
echo for some reason nasm symbols appear as functions? ignore\n
|
176
|
-
echo symbol related warnings.\n
|
177
|
-
echo \n
|
178
|
-
echo -------- type <h> for asm cmds <help> for gdb commands\n
|
179
|
-
|