svg画像表示ツール

December 15,2017 12:03 AM
Category:[ツール]
Tag:[Tool]
Permalink

svg画像表示ツールを作りました。

1.はじめに

SVG画像はXMLで作成され、フォーマットのひとつとして次のように、symbol要素にid属性を付与する方法があります。

<svg>
  <symbol id="foo" viewBox="0 0 110 110">
    <path d="..."></path>
  </symbol>
  <symbol id="bar" viewBox="0 0 110 110">
    <path d="..."></path>
  </symbol>
</svg>

この場合、下記のようにuse要素でid属性を呼び出せば対応するsymbol要素に記述されたsvg画像が表示されます。

<svg title="test" role="img">
  <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="sample.svg#foo"> </use>
</svg>

このようなフォーマットのsvg画像をすべて表示させたいと思い、ツールを作ってみました。

2.使い方

一番下にある「SVGファイルをドロップしてください」の部分にsvgファイルをドラッグ&ドロップすれば、下記のようにsvgファイルに含まれるすべての画像をid属性値とともに表示します。

SVGファイル

すべてのフォーマットに対応できていないかもしれないので予めご容赦ください。

SVGファイルをドロップしてください

Comments [0] | Trackbacks [0]

Chromeでcookieを確認する方法

December 13,2017 12:03 AM
Category:[Google Chrome]
Tag:[Chrome]
Permalink

Chromeでcookieを確認する方法を紹介します。

1.問題点

cookieを操作するスクリプトを作りました。

Chromeでcookieにデータが保存されていることを確認したいのですが、cookieを確認する方法が分かりません。

ということで、Chromeでcookieを確認する方法を紹介します。

2.Chromeでcookieを確認する

Chromeでcookieを確認するには、「Google Chromeの設定」アイコン→「設定」をクリック。

設定

ページの一番下にある「詳細設定」をクリック。

詳細設定

「コンテンツの設定」をクリック。

コンテンツの設定

「Cookie」をクリック。

Cookie

「すべての Cookie とサイトデータを表示」をクリック。

すべての Cookie とサイトデータを表示

ドメイン別にcookieが表示されます。ここでは「localhost」をクリック。

cookieの内容

ドメインに登録されているcookieの一覧が表示されます。

cookieの一覧

右側の▽をクリックすればcookieの内容が表示されます。

cookieの内容

3.cookieを更新する場合の注意

cookieを更新する場合、cookieを表示している画面でリロードしても更新されないようです。

ひとつ前の画面「すべての Cookie とサイトデータ」に戻って、リロードします。

Comments [0] | Trackbacks [0]

gdbでアドレス指定で値を出力する方法

December 5,2017 12:03 AM
Category:[C/C++]
Tag:[C/C++]
Permalink

gdbでアドレス指定で値を出力する方法を紹介します。

1.問題点

下記のサンプルプログラムを作りました。

#include <iostream>
#include <unistd.h>
 
int main() {
    int i;
    int *p;
    int j = 0;
    p = &j;
    for (i = 0; i < 10000; i++ ) {
        std::cout << "OK" << std::endl;
        sleep(1);
        j++;
    }
    return 0;
}

アドレス変数pのアドレスを出力し、そのアドレスをgdbで指定して、指定したアドレスの先の値を出力したいのですが方法が分かりません。

ということで、gdbでアドレス指定で値を出力する方法を紹介します。

2.gdbでアドレス指定で値を出力する

アドレス指定で値を出力するには、"x"を利用します。

サンプルファイルをビルドします。

% g++ -g test.cpp

gdbを起動します。

% gdb ./a.out
GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-94.el7
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "ppc64-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading sym
(gdb)bols from a.out...done.

ブレークポイントを指定します。ここでは12行目を指定します。

(gdb) b 12
Breakpoint 1 at 0x100009f0: file test.cpp, line 12.

スタートして12行目でブレークします。

(gdb) start
Temporary breakpoint 2 at 0x10000998: file test.cpp, line 7.
Starting program: ./a.out
 
Temporary breakpoint 2, main () at test.cpp:7
7           int j = 0;
Missing separate debuginfos, use: debuginfo-install glibc-2.17-157.el7.ppc64 libgcc-4.8.5-11.el7.ppc64 libstdc++-4.8.5-11.el7.ppc64

もう1回ループさせて変数jの値を更新します。

(gdb) c
Continuing.
OK
 
Breakpoint 1, main () at test.cpp:12
12              j++;

ポインタ変数pを出力します。

(gdb) p p
$2 = (int *) 0x3ffffffff080

これでアドレス0x3ffffffff080を指定して値を出力します。

(gdb) x 0x3ffffffff080
0x3ffffffff080: 0x00000000

もう一度繰り返してアドレスの値を出力すれば、値がインクリメントされていることが分かります。

(gdb) c
Continuing.
OK
 
Breakpoint 1, main () at test.cpp:12
12              j++;
(gdb) x 0x3ffffffff080
0x3ffffffff080: 0x00000001

ちなみに、xの後ろに"/回数"を付与すれば、指定回数分のメモリを出力することができます。

(gdb) x/10 0x3ffffffff080
0x3ffffffff080: 0x00000001      0xb7ff0d48      0x00003fff      0xb7fef938
0x3ffffffff090: 0x00000000      0x00000000      0x00000000      0x00000000
0x3ffffffff0a0: 0x00003fff      0xfffff370
Comments [0] | Trackbacks [0]
 1  |  2  |  3  |  4  |  5  | All pages