Skip to main content

First post using stackedit

Welcome to StackEdit! Hey! I’m your first Markdown document in StackEdit1. Don’t delete me, I’m very helpful! I can be recovered anyway in the Utils tab of the Settings dialog.
Documents StackEdit stores your documents in your browser, which means all your documents are automatically saved locally and are accessible offline!
Note:
StackEdit is accessible offline after the application has been loaded for the first time.Your local documents are not shared between different browsers or computers.Clearing your browser’s data may delete all your local documents! Make sure your documents are synchronized with Google Drive or Dropbox (check out the Synchronization section). Create a document The document panel is accessible using the button in the navigation bar. You can create a new document by clicking New document in the document panel.
Switch to another document All your local documents are listed in the document panel. You can switch from one to another by clicking a document in the li…

Sử dụng gcov để kiểm tra sourcecode

Sau khi hoàn thành source code, trong test phase, có thể chúng ta cần kiểm tra tập test case của chúng ta có coverage tất cả các trường hợp có thể xảy ra hay không, hành động này gọi là test code coverage.
Có nhiều tool miễn phí cũng như có phí để thực hiện việc này, nhưng đơn giản nhất là sử dụng công cụ gcov đi kèm trong trình biên dịch gcc.
Để đọc chi tiết hơn về gcov, bạn có thể vào http://gcc.gnu.org/onlinedocs/gcc/Gcov.html#Gcov, hoặc tìm kiếm với Google.
Sử dụng gcov khá đơn giản, giả sử ta có 3 file a.c, b.c và c.c.
Truy cập vào thư mục chứa 3 files này, gõ:
gcc -fprofile-arcs -ftest-coverage a.c b.c c.c
Mặc định gcc sẽ tạo ra file a.out trong thư mục hiện thời, cùng với 3 file a.gcno, b.gcno và c.gcno.
Sau đó bạn chạy file a.out với các parameter cần thiết, sẽ tạo ra thêm 3 file a.gcda, b.gcda và c.gcda.

Sau đó, giả sử cần phân tích file b.c, chúng ta gõ:
gcov b.c
Có hai tham số thường dùng là -b và -f:
-b: thêm thông tin về branch trong code.
-f: thêm thông tin về hàm.
Thông tin tóm tắt sẽ được xuất ra standard output (có thể chuyển hướng output).
Thông tin chi tiết được ghi trong file b.c.gcov.
File b.c.gcov sẽ có dạng:
23: 56: a = 3; //dòng thứ 56 được thực thi 23 lần.
-: 34: { // dòng thứ 23 không được thực hiện
####: 87: } // dòng thứ 87 không được thực hiện
Còn có nhiều thông tin khác bạn có thể tham khảo thêm.

Note: có thể viết shell script để thực hiện tự động với nhiều test case.
gcov tự động ghi thêm thông tin mà không xóa thông tin cũ nếu file a.out được thực hiện nhiều lần.
Ví dụ, nếu a.out chạy 100 lần thì thông tin cuối cùng được ghi vào a.c.gcov, b.c.gcov, v.v... là thông tin tổng hợp của 100 lần chạy.

Comments

Popular posts from this blog

Installing tensorflow on Mac OS 10.11

Tensorflow (https://www.tensorflow.org/) is the open source deep learning library from Google (http://www.wired.com/2015/11/google-open-sources-its-artificial-intelligence-engine/).

Installing Tensorflow is not easy on Mac if you follow exactly the installation instruction on the homepage. I have no idea why. I have error then error while trying to install Tensorflow with pip, with virtualenv, or even with Docker.

However, with Anaconda (https://www.continuum.io/downloads), it will be easy. The trick is you should download the wheel file and install it offline other than retrieving it online as suggested by Tensorflow homepage.

So, with anaconda for python2 installed, I did:

# create a new environment with sklearn installed, up to you
# if you want a pure Python, replace scikit-learn by python
conda create -n tensorflow scikit-learn

# activate the new environment
source activate tensorflow

# download the wheel file

curl https://storage.googleapis.com/tensorflow/mac/tensorflow-0.6.0-py2-none-…

How to use diffent keyboard than English in Ubuntu Server 14.04 (or 14.10) with Gnome Core

Even in my laptop, I still use Ubuntu Server because it seems more stable than Ubuntu Desktop.

At the first time of using Ubuntu Server, you may have some issues, especially if you are not familiar with Linux command, because there is no GUI in Ubuntu Server by default.

There are some ways to install GUI to Ubuntu Server.

I am choosing Gnome Core.

To install Gnome Core:

sudo apt-get install xorg gnome-core gnome-system-tools gnome-app-install
If you have used Ubuntu Desktop before (with Unity), you may find something different in Gnome Core.

1. The notification bar now in on the bottom but not top.
 To see the notification bar, move your mouse to the bottom of the screen.

2. There is no Text Entry anymore, so if you are not native English speaker like me and want to install another typing application such as ibus to type in your own language, it may be pain.

In Gnome Core, to configure your typing, press Windows button (if there is this key in your keyboard), or click to Activities at…